VBA-时间格式标准化

微信公众号原文

系统:Windows 7
软件:Excel 2010

  • 今天讲讲如何将时间信息转化为统一的输出格式

效果图
VBA-时间格式标准化_第1张图片

Part 1:示例

  1. 如上图所示,A列的时间信息,统一转化为标准格式yyyy-mm-dd hh:mm:ss
  2. 注意到第5行和第6行,系统对识别的效果是不一样的,默认第1位是月,当系统判断第1位明显不是月的时候,取第2位为月信息

Part 2:代码

Sub 转换()
    Set sht = ThisWorkbook.Worksheets("示例")
    maxRow = sht.Cells(Rows.Count, "A").End(xlUp).Row
    
    For i = 2 To maxRow Step 1
        old_version = sht.Cells(i, "A")
        new_version = Format(old_version, "yyyy-mm-dd hh:mm:ss")
        sht.Cells(i, "B") = new_version
        sht.Cells(i, "B").NumberFormatLocal = "yyyy-mm-dd hh:mm:ss"
    Next i
    
End Sub

代码截图
VBA-时间格式标准化_第2张图片

Part 3:输出结果说明

  1. 代码中有两个关键信息,一是将信息转化为标准格式,另一个是修改显示格式
  2. 以下两种方式中,在编辑栏显示的信息是一样的,但展示的效果是不一样的
  3. 代码中变量new_version数据类型是字符串,并不是时间格式,所示只是看起来像而已,本质上数据类型还是字符串

取消NumberFormatLocal那一行
VBA-时间格式标准化_第3张图片

增加NumberFormatLocal那一行
VBA-时间格式标准化_第4张图片

数据类型说明
VBA-时间格式标准化_第5张图片

Part 4:部分代码解读

  1. Format是用来转换格式的,sht.Cells(i, "B").NumberFormatLocal是用来修改单元格显示方式的

  • 如需文中高清并可以无限放大路径图,可以文后留言留下邮箱,小编会发过去
  • 本文为原创作品,如需转载,可加小编微信号learningBin

更多精彩,请关注微信公众号
扫描二维码,关注本公众号

公众号底部二维码.jpg

你可能感兴趣的:(VBA-时间格式标准化)