如图所示,该表为某公司合同签订日期。现需要将合同签订日期转换成英文日期,该如何通过VBA批量实现?
姓名合同签订日期英文日期1英文日期2英文日期3甜美的月亮2010/1/11 Jan 20101 January 20101st Jan,2010搞怪的鱼2009/10/2 许亚瑾2010/1/11 淡淡的野狼2007/12/21 jpdhxc2010/7/31 kxdxn2008/1/22 wjdzjy2008/1/5 jddct2008/1/5 无限的小土豆2009/11/15 包容的中心2009/12/8 吕柏贤2010/6/22 着急的奇迹2010/1/14 林映君2009/11/15 陈柏勋2009/12/8 简单的可乐2010/1/14 炙热的裙子2009/9/15 王介廷2009/9/25 认真的自行车2010/4/8 dcdzfj2010/3/5 淡淡的斑马2008/1/5 余思宜2010/7/20 潇洒的毛巾2008/1/5 twdxg2010/3/5 周逸宣2010/6/22 梁殷铨2009/10/31 李晏庭2009/10/18 羞涩的冬天2009/11/15 张政2010/7/2 qxdym2009/10/20 陈伯伦2010/1/14 柯雅文2010/5/9 陈韦志2010/6/5实现代码 Option ExplicitSub 转换英文日期() Dim RowN As Long Dim dDate As Date For RowN = 2 To Cells(Rows.Count, "A").End(xlUp).Row dDate = Cells(RowN, "B").Value Cells(RowN, "C").Value = "'" & CStr(Format(dDate, "d MMM YYYY")) Cells(RowN, "D").Value = "'" & CStr(Format(dDate, "d MMMM YYYY")) Select Case Day(dDate) Case 1, 31 Cells(RowN, "E").Value = Format(dDate, "d""st"" MMMM,YYYY") Case 2 Cells(RowN, "E").Value = Format(dDate, "d""nd"" MMMM,YYYY") Case 3 Cells(RowN, "E").Value = Format(dDate, "d""rd"" MMMM,YYYY") Case Else Cells(RowN, "E").Value = Format(dDate, "d""th"" MMMM,YYYY") End Select NextEnd Sub Format函数
Format函数可以用来对数字、日期、文本进行格式化,并返回格式化后的结果。其语法
Format(expression [,format[,firstdayofweek[,firstweekofyear ]其中,参数expression为被格式化的数字、日期或文本表达式。参数format为格式表达式。关于日期和时间的格式设置,见表。
Format函数的format参数关于日期和时间的设置
字 符
说 明
(:)
时间分隔符
(/)
日期分隔符
d
将天显示为不带前导零的数字(例如,1)
d
将天显示为带—个前导零的数字(例如,01)
ddd
将天显示为缩写(例如,Sun)
dddd
将天显示为全名(例如,Sunday)
M
将月显示为不带前导零的数字(例如,一月表示为1)
MM
将月显示为带一个前导零的数字(例如,01/12/01)
MMM
将月显示为缩写(例如,Jan)
MMMM
将月显示为完整的月份名称(例如,January)
h
使用12小时制时钟将小时显示为不带前导零的数字(例如,1:15:15PM)
hh
使用12小时制时钟将小时显示为带前导零的数字(例如,01:15:15PM)
H
使用24小时制时钟将小时显示为不带前导零的数字(例如,1:15:15)
HH
使用24小时制时钟将小时显示为带前导零的数字(例如,01:15: `5)
m
将分钟显示为不带前导零的数字(例如,12:1:15)
mm
将分钟显示为带前导零的数字(例如,12:01:15)
s
将秒显示为不带前导零的数字(例如,12:15:5)
ss
将秒显示为带前导零的数字(例如,12:15:05)
yy
以带一个前导零的两位数字格式显示年(例如,09)
yyyy
以四位数字格式显示年(例如,2009)
参数firstdayofweek表示以哪一天作为一周的开始。
参数firstweekofyear表示以何种设置为标准表示每年的一周开始。
Format函数的功能虽然强大,但是无法将数字转换为序数词。因而本例中,使用了SelectCase分支结构,对日期进行分组判断,从而根据实际情况设置不同的序数词。
使用DatePart函数获取日期信息DatePart函数可以获取日期或者时间中的某个信息,其语法为
DatePart(interval,date[,firstdayofweek[,firstweekofyear]])参数interval为一个文本,表示需要获取的信息,可以为下表中的任意一个字符。
参数设置
Date参数范围
yyyy
年
q
季度
m
月
y
三个参数均表示天,实质是一致的
y表示1年中的天数
d表示天
w表示1周中的天数
d
w
ww
周
h
小时
n
分钟
s
秒
参数date为一个日期表达式。参数firstdayofweek表示以哪一天作为一周的开始,其值可以为表3-6中的任意常量。参数firstweekofyear表示每年的一周开始以何种设置为标准。以上函数可以返回一个日期信息,若要得知当前是一年中的第几个季度时,可以使用以下表达式获取:
DatePart("q",Date)