在Excel中,我们可以使用year(), month(), day(), hour(), minute(), second()等动态函数,结合文本转换函数text()或自定义格式等,对日期、时间设置一些动态的日期或时间格式。但通过函数或自定义格式设置的日期、时间是不会动态地变化的(除非双击激活某个单元格、或者全手动或者按 F9快捷键 刷新、退出后重新打开表格、重新运算),这样操作起来会很麻烦,逼格也稍微有点低。为了解决这个问题,我们这时就需要用到VBA代码来自定义、扩展丰富一下我们的需求。操作如下:
① 新建个.xlsx格式 的Excel表,并双击打开它
② 按 ALT + F11 组合快捷打开VBA开发环境
③ 接着点击所跳出窗口左上角第4个选项卡“插入”,再点击其下的子菜单“模块”
④ 接下来就可以编辑VBA代码了。
注:VBA代码通常是以 Sub 对象名() 开头,再以 End Sub 结尾。其中“对象名”可为英文字符,也可为中文字符。这个较其它语言奇特一点。
'''以 Sub + 对象名() 开头
Sub 滕玉龙()
''' 将某个单元格设置为活动单元格来接收下面所构造的时间序列数的值
ActiveSheet.Range("A10").Value = Time
'''调用Application下面的OnTime方法,并构造一个以秒为最小时间单位的序列,然后记得返回开头的对象名(传参)
Application.OnTime Time + TimeSerial(0, 0, 1), "滕玉龙"
''' VBA中固定以 End Sub 结尾,完美!
End Sub
⑤ 写好代码后,点击另存为以 .xlsm 结尾的宏文件
⑥ 再写函数引用:
例1:在A1单元格中输入 =TEXT(NOW(),"e年m月d日 h时m分s秒 AM/PM")
例2: 在A2单元格中输入 =TEXT(NOW(),"yyyy年mm月dd日 hh时mm分ss秒 上午/下午")
例3: 先定位选中A3单元格,接着按Ctrl+1快捷组合键,选中“数字”选项卡下的“自定义”子菜单,输入按自己想法设定的自定义代码,如:
e"年"m"月"d"日" h"时"m"分"s"秒" AM/PM 等,然后点击“确定”;
可得效果如下:
总结:其实,Excel平时看起来虽然有种很不起眼的感觉。但实际上,Excel是一款被世人低估了价值的、很实用的数据统计分析软件(毕竟是微软出品的精品)。跟数据打交道多了的人应该都会知道,Excel看似简单,但却不简单(麻雀虽小五脏俱全),可玩性还很高——Excel的内置功能跟多又很实用。所以,热爱Excel的人,不妨把Excel当成一件玩具,当成一个魔方来玩耍——不但好玩,而且可以提高职场的生产力,还可以培养、锻炼我们的大脑逻辑思维……各种乐趣与好处,数不胜数!
来源:oschina
链接:https://my.oschina.net/u/3750423/blog/3229760