咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公
  • 系统环境:Windows 10
  • Excel:2016版本


这个系列集锦一些常用的功能模块,在一些项目中会穿插应用

功能模块中又包括很多子模块,本文涉及的是:时间与日期


时间有多种展示格式,如何进行统一



Part 1:场景介绍

  1. 如图1所示,A列的时间信息,统一转化为标准格式yyyy-mm-dd hh:mm:ss,年-月-日 时:分:秒
  2. 注意到第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:输出结果说明


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

图3 取消NumberFormatLocal那一行


图4 增加NumberFormatLocal那一行


图5 数据类型说明


Part 4:部分代码解读

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



以上,为本次的介绍内容,下回见。

本文首发于微信公众号:Excel高效办公之VBA。排版和细节略作修改,发于头条