如何用VBA代码获取格式为24.10.2019 / 08:45:57的当前日期时间?
获取指定格式的当前日期时间(VBA实现)
嘿,这事儿简单!要生成DD.MM.YYYY / HH:MM:SS这种格式的当前日期时间,用VBA的Format函数就能完美实现,我给你两种实用的写法:
1. 自定义函数(方便重复调用)
如果需要在多个地方用到这个格式化后的时间,写个自定义函数最省心:
Function GetFormattedDateTime() As String ' 生成并返回格式为「DD.MM.YYYY / HH:MM:SS」的当前日期时间 GetFormattedDateTime = Format(Now(), "dd.mm.yyyy / hh:mm:ss") End Function
简单拆解下逻辑:
Now():VBA内置函数,直接返回当前系统的日期和时间Format():核心处理函数,第二个参数是我们指定的格式模板:dd→ 两位数字的日期(比如24)mm→ 两位数字的月份(比如10)yyyy→ 四位数字的年份(比如2019)hh→ 24小时制的两位数字小时(比如08)mm→ 两位数字的分钟(和月份的mm不冲突,因为位置对应时间部分)ss→ 两位数字的秒数(比如57)- 模板里的
.,/, 空格都是固定分隔符,直接保留即可
你可以在Excel单元格里直接调用这个函数:=GetFormattedDateTime(),也能在其他VBA过程里复用它。
2. 直接在过程中使用(一次性场景)
如果只是某个特定过程里需要用一次,直接写在代码里就行,比如写入单元格或者弹窗显示:
Sub ShowFormattedDateTime() Dim formattedTime As String ' 生成格式化后的时间字符串 formattedTime = Format(Now(), "dd.mm.yyyy / hh:mm:ss") ' 示例1:把结果写入Excel的A1单元格 Range("A1").Value = formattedTime ' 示例2:弹出窗口显示结果 MsgBox "当前格式化日期时间:" & vbCrLf & formattedTime, vbInformation End Sub
小提示:
如果需要改成12小时制的时间,只需要把格式模板里的hh改成hh AM/PM就行,但你要的是24小时制,用hh正好匹配需求。
内容的提问来源于stack exchange,提问作者Josef Fancy
相关产品推荐
相关产品推荐

