Excel VBA Дата и время
Узнайте, как работать с датами и временем в Excel VBA.
Поместите ссылке: / VBA-Create-A-макро # командной кнопки [Кнопка управления]
на листе и добавьте строки кода ниже. Для выполнения строк кода, нажмите на кнопку управления на листе.
год, месяц, день Даты
Следующий макрос получает год даты. Для того, чтобы объявить дату, используйте оператор Dim. Чтобы инициализировать дату, используйте функцию DATEVALUE.
Код:
Dim exampleDate As Date exampleDate = DateValue("Jan 19, 2020") MsgBox Year(exampleDate)
Результат:
Примечание: Используйте месяц и день, чтобы получить месяц и день в день.
DateAdd
Чтобы добавить несколько дней до даты, используйте функцию DateAdd. Функция DateAdd имеет три аргумента. Заполните «г» для первого аргумента, чтобы добавить дни. Заполните 3 для второго аргумента, чтобы добавить 3 дня. Третий аргумент представляет собой дату, к которой будет добавлено количество дней.
Код:
Dim firstDate As Date, secondDate As Date firstDate = DateValue("Jan 19, 2020") secondDate = DateAdd("d", 3, firstDate) MsgBox secondDate
Результат:
Примечание: Изменение «d» на «м», чтобы добавить несколько месяцев к дате. Наведите курсор на DateAdd в редакторе Visual Basic и нажмите F1 для получения справки о других интервальных спецификаторах. Даты в формате США. Месяцы первый, второй дни. Этот тип формата зависит от ваших окон региональных настроек.
Текущая дата и время
Чтобы получить текущую дату и время, используйте функцию Now.
Код:
MsgBox Now
Результат:
час, минута, секунда
Получить час времени, используйте функцию Hour.
Код:
MsgBox Hour(Now)
Результат:
Примечание: Используйте минуты и секунды, чтобы получить минуту и секунду одновременно.
TimeValue
Функция TimeValue преобразует строку в серийный номер времени. Серийный номер, время является числом между 0 и 1. Например, в полдень (на полпути через день) представляется в виде 0,5.
Код:
MsgBox TimeValue("9:20:01 am")
Результат:
Теперь, чтобы ясно видеть, что Excel обрабатывает раз внутренне как числа в диапазоне от 0 до 1, добавьте следующие строки кода:
Dim y As Double y = TimeValue("09:20:01") MsgBox y
Результат: