it-roy-ru.com

Форматирование числа до двух цифр, даже если первая является VBA

Я хотел бы иметь возможность использовать VBA для отображения любого числа от 1-24 в виде двухзначного числа. Очевидно, единственные, у кого есть проблемы с этим, это 1-9, которые я хотел бы отобразить как 01, 02, 03 и т.д. Есть ли способ сделать это?

8
Chad Portman

Вы не можете отформатировать целочисленную переменную, вам нужно использовать строковую переменную для форматирования.

Вы можете преобразовать дневную часть даты в формат с ведущими нулями, используя функцию Day, чтобы извлечь номер дня из даты, а затем с помощью функции Format с форматом "00", чтобы добавить начальный ноль, где это необходимо.

Формат (день (myDate), "00")

myDate - переменная Date, содержащая полное значение Date

Следующий макрос можно использовать в качестве рабочего образца.

Sub Macro1()
    Dim myDate As Date

    myDate = "2015-5-1"

    Dim dayPart  As String

    dayPart = Format(Day(myDate), "00")

    MsgBox dayPart
End Sub
17
DeanOC

Я сделал это так:

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

Это сделает работу.

1
Matti

Конечно, вы можете отформатировать целое число, вы просто конвертируете его в строку в команде форматирования:

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