【发布时间】:2015-01-19 01:08:57
【问题描述】:
我希望能够使用 VBA 将 1-24 之间的任何数字显示为 2 位数字。显然,唯一有问题的是 1-9,我希望将其显示为 01、02、03 等。有没有办法执行此操作?
【问题讨论】:
标签: excel vba formatting string-formatting
我希望能够使用 VBA 将 1-24 之间的任何数字显示为 2 位数字。显然,唯一有问题的是 1-9,我希望将其显示为 01、02、03 等。有没有办法执行此操作?
【问题讨论】:
标签: excel vba formatting string-formatting
不能格式化整型变量,需要用字符串变量格式化。
您可以使用Day 函数从日期中提取日期数,然后使用Format 函数和"00" 格式将日期的日期部分转换为带有前导零的格式必要时前导零
格式(Day(myDate), "00")
myDate 是一个包含完整日期值的日期变量
以下宏可用作工作示例
Sub Macro1()
Dim myDate As Date
myDate = "2015-5-1"
Dim dayPart As String
dayPart = Format(Day(myDate), "00")
MsgBox dayPart
End Sub
【讨论】:
当然你可以格式化一个整数,你只需在格式化命令中将它转换为字符串:
formattedIntAsString = Format(Cstr(intValue), "00")
【讨论】:
我是这样做的:
number_item = 2
number_item = WorksheetFunction.Text(number_item, "00")
这样就可以了。
【讨论】:
我知道它已经过时了,但是,为了澄清这个问题,我会使用内置的日期格式化功能。
修改 DeanOC 的答案:
Sub Macro1()
Dim dateDate As Date
Dim strDate As String
Dim strDay As String
dateDate = "2015-5-1"
strDate = Format(dateDate, "mm/dd/yy") ' = "05/01/15"
strDay = Format(dateDate, "dd") ' = "01"
MsgBox "The two digit day of """ & strDate & """ is """ & strDay & ""."
End Sub
【讨论】: