大家好,我们今日继续讲解VBA代码解决方案的第56讲内容:格式化数值、日期和时间
提到格式化,很多朋友马上会想到财务的报表,是那些非常错落有致的数字,其实,这些规范化的数字表示都是有一定的原则执行的,这个原则就是规矩的执行。在VBA中就是Format函数的利用了。
Format函数根据格式表达式中的指令来格式化的数值、日期和时间,语法如下:
Format(expression[, format[, firstdayofweek[, firstweekofyear]]])
其中参数expression是必需的,任何有效的表达式。
参数format是可选的,有效的命名表达式或用户自定义格式表达式。firstdayofweek可选参数。常数,表示一星期的第一天。firstweekofyear可选参数。常数,表示一年的第一周。
firstdayofweek 参数有下面设置:vbUseSystem 0 使用 NLS API 设置;VbSunday 1 星期日(缺省);vbMonday 2 星期一;vbTuesday 3 星期二;vbWednesday 4 星期三;vbThursday 5 星期四;vbFriday 6 星期五;vbSaturday 7 星期六
firstweekofyear 参数有下面设置:vbUseSystem 0 使用 NLS API 设置;vbFirstJan1 1 从包含一月一日的那一周开始(缺省)。;vbFirstFourDays 2 从本年第一周开始,而此周至少有四天在本年中。VbFirstFullWeek 3 从本年第一周开始,而此周完全在本年中。
Format函数是VBA中的常用函数,可以实现数值、日期和时间格式的转变,下面为一段示例代码如下:
Sub MyFromatCurrent()
MsgBox Format(123456.789, "0.00") & Chr(13) _
& Format(123456.789, "0.00%") & Chr(13) _
& Format(123456.789, "##,##0.00") & Chr(13) _
& Format(-123456.789, "$#,##0.00;($#,##0.00)") & Chr(13) _
& Format(-123456.789, "¥#,##0.00;(¥#,##0.00)") & Chr(13) _
& Format(Date, "yyyy-mm-dd") & Chr(13) _
& Format(Date, "yyyymmdd") & Chr(13) _
& Format(Date, "Long Date") & Chr(13) _
& Format(Now, "hh:mm:ss") & Chr(13) _
& Format(Now, "hh:mm:ss AMPM")
End Sub
代码解析:
FromatCurrent过程使用消息框显示格式化后的数值、日期和时间。
第2行代码将数值格式化为两位小数格式显示。
第3行代码将数值格式化为两位小数的百分比格式显示。
第4行代码将数值格式化为千位分隔符显示。
第5行代码将数值格式化为以美元符号显示的两位小数,以千位分隔符分隔,如果是负值则以小括号显示。
第6行代码将数值格式化为以人民币符号显示的两位小数,以千位分隔符分隔,如果是负值则以小括号显示。
第7行代码将系统日期格式化为"yyyy-mm-dd"格式显示。
第8行代码将系统日期格式化为"yyyymmdd"格式显示。
第9行代码将系统日期格式化为长日期格式显示。
第10行代码将系统时间格式化为24小时、分钟和秒的格式显示。
第11行代码将系统时间格式化为分12小时、分钟和秒的格式显示。
代码窗口:
运行结果:
今日内容回向:
1 Format函数 的意义是什么?
2 如何实现数字的格式化?