如何在日期天数后快速加上第n天的英文后缀?
itomcoil 2025-06-15 16:58 6 浏览
你有没有遇到过这样的场景?
做了一张带有日期天数的表格,如上表,1-31代表天数,但是因为表格都是数字,看上去过于单调,你希望在天数后面加上英文的天数后缀。
如1号为1st(first缩写),2号为2nd(second缩写),3号为rd(third缩写),其它大部分天数后缀为th。
完整的、正确的后缀列表应该是这样的:
第1 first 1st
第2 second 2nd
第3 third 3rd
第4 fourth 4th
第5 fifth 5th
第6 sixth 6th
第7 seventh 7th
第8 eighth 8th
第9 ninth 9th
第10 tenth 10th
第11 eleventh 11th
第12 twelfth 12th
第13 thirteenth 13th
第14 fourteenth 14th
第15 fifteenth 15th
第16 sixteenth 16th
第17 seventeenth 17th
第18 eighteenth 18th
第19 nineteenth 19th
第20 twentieth 20th
第21 twenty-first 21st
第22 twenty-second 22nd
第23 twenty-third 23rd
第24 twenty-fourth 24th
第25 twenty-fifth 25th
第26 twenty-sixth 26th
第27 twenty-seventh 27th
第28 twenty-eighth 28th
第29 twenty-ninth 29th
第30 thirtieth 30th
第31 thirty-first 31st
你会发现,1-31天中,1、2、3、21、22、23这6天是以st、nd、rd结尾的,而11、12、13和其它天均是以th结尾的。
问题来了,怎么可以实现最快的速度自动给天数后面加上对应的英文(第*天)的后缀呢?
其实,如果只是为了解决这个问题,最简单的方法没有别的,就是手动处理一遍。
为了不改变天数的数据类型,我们可以分别对天数应用自定义格式,让单元格自动“加上”英文后缀。
然后把做好的格式复制保存下来,以备后用。用的时候,直接复制,没有比这更简单的方法了。
但是,作为Excel控,我们更想实现的是用具体的方法来实现自动添加后缀,通过这个案例能学到一些知识,将来用到其它场景里,这才是这个案例的价值所在。
如前所述,1-31天后面加后缀,其实是分几种情况的,除了11、12、13天以外,如果天数是以1、2、3结尾的,则分别添加st、nd、rd,否则则添加th。
我们用VBA来解决这个问题,来看操作步骤——
步骤1:ALT+F11,打开VBE编辑器;
步骤2:添加一个模块,在模块中编写代码如下:
Sub 自动添加英文天后缀()
For c = 2 To 32
If Right(Cells(3, c), 1) = 1 And Cells(3, c) <> 11 Then
Cells(3, c).NumberFormatLocal = "0""st"""
ElseIf Right(Cells(3, c), 1) = 2 And Cells(3, c) <> 12 Then
Cells(3, c).NumberFormatLocal = "0""nd"""
ElseIf Right(Cells(3, c), 1) = 3 And Cells(3, c) <> 13 Then
Cells(3, c).NumberFormatLocal = "0""rd"""
Else
Cells(3, c).NumberFormatLocal = "0""th"""
End If
Next
End Sub
步骤3:执行编写好的程序,一键得到想要的结果。
总结:
以上代码中使用了VBA中的两个经典语句——For……Next循环遍历语句和If……End If条件判断语句,Cells(3, c).NumberFormatLocal = "0""st"""为自定义格式的代码(可通过录制宏的方式获得)。
通过这个简单的案例,可以看到VBA在解决批量、自动化问题处理上的优势。原本需要手工操作的问题,编写好VBA程序后,一键即可自动执行。
相关推荐
- 信创系统下的Anaconda离线配置全攻略
-
原文链接:「链接」Hello,大家好啊,今天给大家带来一篇信创操作系统上离线配置Anaconda的文章,欢迎大家分享点赞,点个在看和关注吧!在信创环境下使用Anaconda对Python进行包...
- 【Python】Mac中Anaconda安装与使用(2025)
-
一、anaconda介绍我是一个多年的Java工程师,之前也写过一些简单的Python程序,随着AI的发展,后续使用Python会越来越多,和Java一样,Python涉及环境配置...
- 在豆包的协助下,折腾了一天,电脑盲终于把Doccano安装好了
-
折腾了一天,终于把Doccano软件装好了。先是用Deepseek,提示词:给新手小白出一个在新电脑上安装doccano的教程新手小白安装Doccano终极教程无需编程基础,两种方法任选,全程避坑...
- 用Python开发日常小软件,让生活与工作更高效!附实例代码
-
引言:Python如何让生活更轻松?在数字化时代,编程早已不是程序员的专属技能。Python凭借其简洁易学的特点,成为普通人提升效率、解决日常问题的得力工具。无论是自动化重复任务、处理数据,还是开发个...
- 用python怎么做最简单的桌面计算器
-
有网友问,用python怎么做一个最简单的桌面计算器。如果只强调简单,在本机运行,不考虑安全性和容错等的话,你能想到的最简单的方案是什么呢?我觉得用tkinter加eval就够简单的。现在开整。首先创...
- 用python操作excel、word、pdf非常迅速方便,迅速教会你
-
你会用python操作excel、word、pdf吗?不会也没关系,这篇文章教会你~【文末领取】案例篇幅有限,给大家准备了电子版PDF获取方式:...
- 10 个每个初学者都应该知道的 Python 技巧
-
1.无需临时变量交换两个变量的值之前:a=5b=10temp=aa=bb=temp之后:a,b=5,10a,b=b,aprint(a,b)#输出:1051...
- SQL用了两年多,分享2个最常用的小技巧
-
导读:SQL是所有数据从业者必须打牢的基本功之一,扎实的SQL查询和适当的调优技巧是检验SQL能力的两大重要准则。个人曾经专门花费过好多时间用于提升SQL能力,期间也刷了大量的SQL题目,在这期间也...
- Python 高手的 15 个代码技巧,让你的编程效率翻倍
-
在Python编程的世界里,我们总能遇到一些代码写得更短、更快、更整洁的开发者。他们似乎掌握了一些不为人知的秘密。本文将揭示15个实用的Python技巧,这些技巧在初学者教程中鲜有提及,却...
- 30天学会Python编程:16. Python常用标准库使用教程
-
16.1collections模块16.1.1高级数据结构16.1.2示例fromcollectionsimportdefaultdict,Counter,deque#默认字典...
- 7 个小 Python 技巧(python技巧总结60)
-
1.使用_作为临时变量这一点很微小,但非常强大。有时候你需要一个循环或一个你实际上不会使用的值。比如:for_inrange(3):print("Hello")过去...
- 如何系统的学python?(如何系统的学剪辑)
-
我不喜欢一上来就推荐一堆参考资料的东西,那只会让初学者更迷茫。好比一个婴儿,你告诉他学会走路的方法有100种,他只会变的对走路毫无兴趣,他要的只是一种最有效的学会走路的办法,而不是100种。同样的,下...
- Python 静态方法、类方法与多态方法:特性解析与实战应用
-
在Python面向对象编程的重要概念,它们各自具备独特的特性和应用场景,为开发者提供了多样化的编程方式。静态方法不依赖实例状态,类方法以类为操作主体,多态方法则实现了不同类对象对同一消息的差异化响...
- 用 Python 库 PySimpleGUI 制作自动化办公小软件
-
Python在运维和办公自动化中扮演着重要的角色,PySimpleGUI是一款很棒的自动化辅助模块,让你更轻松的实现日常任务的自动化。1PySimpleGUI安装在命令行/终端输入:pipin...
- 一日多技:8个有趣的Python实用技巧
-
在这一小节中,我们将看到8个实用的python技巧,这些技巧使用比较高频且有用。列表的反向查找:我们可以使用reverse()函数让列表中的元素反向,它处理列表中存在的数字和字符串数据类型。下面我们直...
- 一周热门
- 最近发表
- 标签列表
-
- ps图案在哪里 (33)
- super().__init__ (33)
- python 获取日期 (34)
- 0xa (36)
- super().__init__()详解 (33)
- python安装包在哪里找 (33)
- linux查看python版本信息 (35)
- python怎么改成中文 (35)
- php文件怎么在浏览器运行 (33)
- eval在python中的意思 (33)
- python安装opencv库 (35)
- python div (34)
- sticky css (33)
- python中random.randint()函数 (34)
- python去掉字符串中的指定字符 (33)
- python入门经典100题 (34)
- anaconda安装路径 (34)
- yield和return的区别 (33)
- 1到10的阶乘之和是多少 (35)
- python安装sklearn库 (33)
- dom和bom区别 (33)
- js 替换指定位置的字符 (33)
- python判断元素是否存在 (33)
- sorted key (33)
- shutil.copy() (33)