Excel 2010 VBA 入门 054 Format函数对日期格式化

这篇博客介绍了如何使用VBA在Excel中批量将合同签订日期从中文格式转换为英文日期格式,包括不同样式,如1Jan2010、1January2010和1stJan,2010等。文章详细解释了VBA代码实现过程,并展示了Format函数在日期格式化中的应用。
摘要由CSDN通过智能技术生成

示例:转换成英文日期

    如图所示,该表为某公司合同签订日期。现需要将合同签订日期转换成英文日期,该如何通过VBA批量实现?

姓名合同签订日期英文日期1英文日期2英文日期3
辛劭钧2010/1/11 Jan 20101 January 20101st Jan,2010
林庆荣2009/10/2   
许亚瑾2010/1/11   
施佳翔2007/12/21   
钟皓宇2010/7/31   
李志仁2008/1/22   
杨婉伶2008/1/5   
林艺芳2008/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   
洪亚菁2010/3/5   
吴宗隆2008/1/5   
余思宜2010/7/20   
邱建霖2008/1/5   
黄译庆2010/3/5   
周逸宣2010/6/22   
梁殷铨2009/10/31   
李晏庭2009/10/18   
曹贤德2009/11/15   
张政2010/7/2   
杨智玮2009/10/20   
陈伯伦2010/1/14   
柯雅文2010/5/9   
陈韦志2010/6/5   

 

实现代码

Option Explicit

Sub 转换英文日期()
    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
    Next
End 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)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值