将数字格式化为两位数,即使第一位是 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