将数字格式化为两位数,即使第一位是 0 vba
Formatting a number to two digits even if the first is a 0 vba
我希望能够使用 VBA 将 1-24 之间的任何数字显示为 2 位数字。显然,唯一有问题的是 1-9,我希望将其显示为 01、02、03 等。有没有办法执行此操作?
无法格式化整型变量,需要使用字符串变量进行格式化。
您可以使用 Day
函数从日期中提取天数,然后使用 Format
函数和 "00"
格式以在必要时添加前导零
Format(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
我是这样做的:
number_item = 2
number_item = WorksheetFunction.Text(number_item, "00")
这样就可以了。
当然你可以格式化一个整数,你只需在格式化命令中将它转换为字符串:
formattedIntAsString = Format(Cstr(intValue), "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
我希望能够使用 VBA 将 1-24 之间的任何数字显示为 2 位数字。显然,唯一有问题的是 1-9,我希望将其显示为 01、02、03 等。有没有办法执行此操作?
无法格式化整型变量,需要使用字符串变量进行格式化。
您可以使用 Day
函数从日期中提取天数,然后使用 Format
函数和 "00"
格式以在必要时添加前导零
Format(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
我是这样做的:
number_item = 2
number_item = WorksheetFunction.Text(number_item, "00")
这样就可以了。
当然你可以格式化一个整数,你只需在格式化命令中将它转换为字符串:
formattedIntAsString = Format(Cstr(intValue), "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