- 系统环境:Windows 10
- Excel:2016版本
这个系列集锦一些常用的功能模块,在一些项目中会穿插应用
功能模块中又包括很多子模块,本文涉及的是:时间与日期
时间有多种展示格式,如何进行统一
Part 1:场景介绍
- 如图1所示,A列的时间信息,统一转化为标准格式yyyy-mm-dd hh:mm:ss,年-月-日 时:分:秒
- 注意到第5行和第6行,系统对月识别的效果是不一样的,默认第1位是月,当系统判断第1位明显不是月的时候,取第2位为月信息
图1 示例
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
图2 代码截图
Part 3:输出结果说明
- 代码中有两个关键信息,一是将信息转化为标准格式,另一个是修改显示格式
- 以下两种方式中,在编辑栏显示的信息是一样的,但展示的效果是不一样的
- 代码中变量new_version数据类型是字符串,并不是时间格式,所示只是看起来像而已,本质上数据类型还是字符串
图3 取消NumberFormatLocal那一行
图4 增加NumberFormatLocal那一行
图5 数据类型说明
Part 4:部分代码解读
- Format是用来转换格式的,sht.Cells(i, "B").NumberFormatLocal是用来修改单元格显示方式的
以上,为本次的介绍内容,下回见。
本文首发于微信公众号:Excel高效办公之VBA。排版和细节略作修改,发于头条