Узнайте, как работать с датами и временем в Excel VBA.

Поместите ссылке: / VBA-Create-A-макро # командной кнопки [Кнопка управления] на листе и добавьте строки кода ниже. Для выполнения строк кода, нажмите на кнопку управления на листе.

год, месяц, день Даты

Следующий макрос получает год даты. Для того, чтобы объявить дату, используйте оператор Dim. Чтобы инициализировать дату, используйте функцию DATEVALUE.

Код:

Dim exampleDate As Date



exampleDate = DateValue("Jan 19, 2020")

MsgBox Year(exampleDate)

Результат:

Year of a Date in Excel VBA

Примечание: Используйте месяц и день, чтобы получить месяц и день в день.

DateAdd

Чтобы добавить несколько дней до даты, используйте функцию DateAdd. Функция DateAdd имеет три аргумента. Заполните «г» для первого аргумента, чтобы добавить дни. Заполните 3 для второго аргумента, чтобы добавить 3 дня. Третий аргумент представляет собой дату, к которой будет добавлено количество дней.

Код:

Dim firstDate As Date, secondDate As Date

firstDate = DateValue("Jan 19, 2020")

secondDate = DateAdd("d", 3, firstDate)

MsgBox secondDate

Результат:

DateAdd

Примечание: Изменение «d» на «м», чтобы добавить несколько месяцев к дате. Наведите курсор на DateAdd в редакторе Visual Basic и нажмите F1 для получения справки о других интервальных спецификаторах. Даты в формате США. Месяцы первый, второй дни. Этот тип формата зависит от ваших окон региональных настроек.

Текущая дата и время

Чтобы получить текущую дату и время, используйте функцию Now.

Код:

MsgBox Now

Результат:

Current Date and Time

час, минута, секунда

Получить час времени, используйте функцию Hour.

Код:

MsgBox Hour(Now)

Результат:

Hour of the Current Time

Примечание: Используйте минуты и секунды, чтобы получить минуту и ​​секунду одновременно.

TimeValue

Функция TimeValue преобразует строку в серийный номер времени. Серийный номер, время является числом между 0 и 1. Например, в полдень (на полпути через день) представляется в виде 0,5.

Код:

MsgBox TimeValue("9:20:01 am")

Результат:

TimeValue

Теперь, чтобы ясно видеть, что Excel обрабатывает раз внутренне как числа в диапазоне от 0 до 1, добавьте следующие строки кода:

Dim y As Double

y = TimeValue("09:20:01")

MsgBox y

Результат:

Time Serial Number