即使第一个是0 vba,也要将数字格式化为两位数

时间:2015-01-19 01:08:57

标签: excel-vba formatting string-formatting vba excel

我希望能够使用VBA在1-24之间显示任意数字作为2位数字。显然,唯一有问题的是1-9,我想显示为01,02,03等。有没有办法执行此操作?

4 个答案:

答案 0 :(得分:17)

您无法格式化整数变量,您需要使用字符串变量进行格式化。

您可以使用Day函数将日期的日期部分转换为带前导零的格式,以从日期中提取日期编号,然后使用Format函数将{{1} }}格式在必要时添加前导零

  

格式(Day(myDate)," 00")

myDate是一个Date变量,包含完整的Date值

以下宏可用作工作样本

"00"

答案 1 :(得分:1)

我是这样做的:

number_item = 2
number_item = WorksheetFunction.Text(number_item, "00") 

这将完成这项工作。

答案 2 :(得分:0)

确定可以格式化整数,只需在format命令中将其转换为字符串即可:

formattedIntAsString = Format(Cstr(intValue), "00")

答案 3 :(得分:0)

我知道它已经很老了,但是,为了回答明确的问题,我将使用内置的日期格式化功能。

修改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