В этом руководстве мы рассмотрим различные встроенные функции даты VBA.
Функция даты VBA
Вы можете использовать функцию даты, чтобы вернуть текущую дату.
Синтаксис функции Date - Date (). У него нет аргументов.
В следующем коде показано, как использовать функцию даты:
12345678 | Sub UsingTheDateFunction ()Уменьшить дату как датуtheDate = Дата ()Отладка. Распечатать датуКонец подписки |
Результат:
Функция VBA Now
Вы можете использовать функцию Now, чтобы вернуть текущую дату и время.
Синтаксис функции Now: Now (). У него нет аргументов.
В следующем коде показано, как использовать функцию «Сейчас»:
12345678 | Sub UsingTheNowFunction ()Уменьшить дату как датуtheDate = Сейчас ()Отладка. Распечатать датуКонец подписки |
Результат:
Функция времени VBA
Вы можете использовать функцию времени, чтобы вернуть текущее время.
Синтаксис функции времени - Time (). У него нет аргументов.
В следующем коде показано, как использовать функцию времени:
12345678 | Sub UsingTheTimeFunction ()Уменьшить время как датуtheTime = Время ()Отладка. Распечатать времяКонец подписки |
Результат:
Функция DateAdd в VBA
Вы можете использовать функцию DateAdd, чтобы добавить интервал даты / времени к дате или времени, и функция вернет результирующую дату / время.
Синтаксис функции DateAdd:
DateAdd (интервал, число, дата) где:
- Интервал - строка, указывающая тип используемого интервала. Интервал может быть одним из следующих значений:
«Д» - день
«Ww» - неделя
«W» - будний день
«М» - месяц
«Q» - четверть
«Гггг» - год
«Y» - день года
«Ч» - час
«N» - минуты
«S» - второй
- Число - количество интервалов, которые вы хотите добавить к исходной дате / времени.
- Дата - исходная дата / время.
Примечание. При использовании дат в коде необходимо заключить их в кавычки или #.
В следующем коде показано, как использовать функцию DateAdd:
123456789 | Sub UsingTheDateAddFunction ()Затемнить позже Дата как ДатаLaterDate = DateAdd ("м", 10, "12.11.2019")Отладка.Печать позже ДатаКонец подписки |
Результат:
Функция VBA DateDiff
Вы можете использовать функцию DateDiff, чтобы получить разницу между двумя датами на основе указанного временного интервала.
Синтаксис функции DateDiff:
DateDiff (Interval, Date1, Date2, [Firstdayofweek], [Firstweekofyear]) где:
- Интервал - строка, указывающая тип используемого интервала. Интервал может быть одним из следующих значений:
«Д» - день
«Ww» - неделя
«W» - будний день
«М» - месяц
«Q» - четверть
«Гггг» - год
«Y» - день года
«Ч» - час
«N» - минуты
«S» - второй
- Date1 - значение даты, представляющее более раннюю дату.
- Date2 - значение даты, представляющее более позднюю дату.
- Первый день недели (По желанию) - константа, указывающая день недели, который функция должна использовать в качестве первого дня недели. Если пусто, то воскресенье используется как первый день недели. Firstdayofweek может быть одним из следующих значений:
-vbSunday - использовать воскресенье как первый день недели.
-vbMonday - использовать понедельник как первый день недели.
-vbTuesday - вторник используется как первый день недели.
-vbWednesday - среда как первый день недели.
-vbThursday - использует четверг как первый день недели.
-vbFriday - использовать пятницу как первый день недели.
-vbSaturday - использовать субботу как первый день недели.
-vbUseSystemDayOfTheWeek - использует первый день недели, указанный в настройках вашей системы.
- Первая неделя года (По желанию) - Константа, определяющая первую неделю года. Если поле пусто, то неделя 1 января используется как первая неделя года. Firstweekofyear может быть одним из следующих значений:
-vbFirstJan1 - использует неделю с 1 января.
-vbFirstFourDays - использует первую неделю, которая содержит не менее четырех дней нового года.
-vbFirstFullWeek - использует первую полную неделю года.
-vbSystem - использует первую неделю года, как указано в настройках вашей системы.
В следующем коде показано, как использовать функцию DateDiff:
123456789 | Sub UsingTheDateDiffFunction ()Уменьшите разницу между двумя датами как долгоtheDifferenceBetweenTwoDates = DateDiff («q», «11/11/2010», «10/12/2012»)Debug.Print theDifferenceBetweenTwoDatesКонец подписки |
Результат:
Функция VBA DatePart
Вы можете использовать функцию DatePart, чтобы вернуть часть (день, неделя, квартал, месяц и т. Д.) Заданной даты.
Синтаксис функции DatePart:
DatePart (Interval, Date, [Firstdayofweek], [Firstweekofyear]), где:
- Интервал - строка, указывающая возвращаемую часть даты. Интервал может быть одним из следующих значений:
«Д» - день
«Ww» - неделя
«W» - будний день
«М» - месяц
«Q» - четверть
«Гггг» - год
«Y» - день года
«Ч» - час
«N» - минуты
«S» - второй
- Дата - дата, часть которой должна возвращать функция.
- Первый день недели (По желанию) - константа, указывающая день недели, который функция должна использовать в качестве первого дня недели. Если пусто, то воскресенье используется как первый день недели. Firstdayofweek может быть одним из следующих значений:
-vbSunday - использовать воскресенье как первый день недели.
-vbMonday - использовать понедельник как первый день недели.
-vbTuesday - вторник используется в качестве первого дня недели.
-vbWednesday - среда как первый день недели.
-vbThursday - использует четверг как первый день недели.
-vbFriday - использовать пятницу как первый день недели.
-vbSaturday - использовать субботу как первый день недели.
-vbUseSystemDayOfTheWeek - использует первый день недели, указанный в настройках вашей системы.
- Первая неделя года (По желанию) - Константа, определяющая первую неделю года. Если поле пусто, то неделя 1 января используется как первая неделя года. Firstweekofyear может быть одним из следующих значений:
-vbFirstJan1 - использует неделю с 1 января.
-vbFirstFourDays - использует первую неделю, которая содержит не менее четырех дней нового года.
-vbFirstFullWeek - использует первую полную неделю года.
-vbSystem - использует первую неделю года, как указано в настройках вашей системы.
В следующем коде показано, как использовать функцию DatePart:
123456789 | Sub UsingTheDatePartFunction ()Уменьшите значение параметра thePartOfTheDate как целое числоthePartOfTheDate = DatePart («гггг», «12.12.2009»)Debug.Print thePartOfTheDateКонец подписки |
Результат:
Функция VBA DateSerial
Функция VBA DateSerial принимает входные год, месяц и день и возвращает дату.
Синтаксис функции DateSerial:
DateSerial (Год, Месяц, День), где:
- Год - целое число от 100 до 9999, представляющее год.
- Месяц - целое число, представляющее месяц.
- День - целое число, представляющее день.
В следующем коде показано, как использовать функцию DateSerial:
123456789 | Sub UsingTheDateSerialFunction ()Уменьшить дату как датуtheDate = DateSerial (2010, 11, 10)Отладка. Распечатать датуКонец подписки |
Результат:
Функция VBA DateValue
Функция DateValue возвращает дату, когда ей дано строковое представление даты.
Синтаксис функции DateValue:
DateValue (Дата) где:
- Дата - строка, представляющая дату.
В следующем коде показано, как использовать функцию DateValue:
123456789 | Sub UsingTheDateValueFunction ()Уменьшить дату как датуtheDate = DateValue ("29 октября 2010 г.")Отладка. Распечатать датуКонец подписки |
Результат:
Функция дня VBA
Вы можете использовать функцию дня, чтобы вернуть день введенной даты.
Синтаксис функции дня:
День (Date_value), где:
- Date_value - дата, из которой вы хотите извлечь день.
В следующем коде показано, как использовать функцию дня:
123456789 | Sub UsingTheDayFunction ()Dim theDay As IntegertheDay = День ("12.10.2010")Отладка. Распечатать деньКонец подписки |
Результат:
Функция часов VBA
Вы можете использовать функцию Hour, чтобы вернуть час введенного времени.
Синтаксис функции часов:
Час (Время), где:
- Время - время, из которого вы хотите извлечь час.
В следующем коде показано, как использовать функцию часов:
123456789 | Sub UsingTheHourFunction ()Уменьшить значение часа как целоеtheHour = Час ("2:14:17 AM")Отладка. Распечатать часКонец подписки |
Результат:
Функция минут VBA
Вы можете использовать функцию Minute, чтобы вернуть значение минут для времени ввода.
Синтаксис функции минут:
Минута (время), где:
- Время - время, из которого вы хотите извлечь значение минут.
В следующем коде показано, как использовать функцию минут:
123456789 | Sub UsingTheMinuteFunction ()Уменьшите значение theMinuteValue как целое числоtheMinuteValue = Минута ("2:14:17 AM")Debug.Print theMinuteValueКонец подписки |
Результат:
Вторая функция VBA
Вы можете использовать вторую функцию, чтобы вернуть второе значение времени ввода.
Синтаксис второй функции:
Второй (Время), где:
- Время - время, из которого вы хотите извлечь второе значение.
В следующем коде показано, как использовать вторую функцию:
123456789 | Sub UsingTheSecondFunction ()Уменьшите значение theSecondValue как целое числоtheSecondValue = Second ("2:14:17 AM")Debug.Print theSecondValueКонец подписки |
Результат:
Функция месяца VBA
Вы можете использовать функцию «Месяц», чтобы вернуть месяц даты ввода.
Синтаксис функции месяца:
Месяц (Date_value) где:
- Date_value - дата, из которой вы хотите извлечь месяц.
В следующем коде показано, как использовать функцию месяца:
12345678 | Sub UsingTheMonthFunction ()Dim theMonth As IntegertheMonth = Месяц ("18.11.2010")Отладка. Распечатать месяцКонец подписки |
Результат:
Функция VBA MonthName
Вы можете использовать функцию MonthName, чтобы вернуть название месяца из введенного номера месяца.
Синтаксис функции MonthName:
MonthName (Number_of_month, [Abbreviate]) где:
- Number_of_month - целое число от 1 до 12.
- Сократить (По желанию) - указывает, следует ли сокращать название месяца. Если пусто, используется значение по умолчанию False.
12345678 | Sub UsingTheMonthNameFunction ()Уменьшите значение имени месяца как строкиtheMonthName = имя месяца (12, верно)Debug.Print theMonthNameКонец подписки |
Результат:
Функция VBA TimeSerial
Функция TimeSerial принимает введенные часы, минуты и секунды и возвращает время.
Синтаксис функции TimeSerial:
TimeSerial (час, минута, секунда), где:
- Час - целое число от 0 до 23, представляющее значение часа.
- Минута - целое число от 0 до 59, представляющее значение минуты.
- Второе - целое число от 0 до 59, представляющее второе значение.
В следующем коде показано, как использовать функцию TimeSerial:
12345678 | Sub UsingTheTimeSerialFunction ()Уменьшить время как датуtheTime = TimeSerial (1, 10, 15)Отладка. Распечатать времяКонец подписки |
Результат:
Функция VBA TimeValue
Функция TimeValue возвращает время из строкового представления даты или времени.
Синтаксис функции TimeValue:
TimeValue (Время), где:
- Время - Строка, представляющая время.
В следующем коде показано, как использовать функцию TimeValue:
12345678 | Sub UsingTheTimeValueFunction ()Уменьшить время как датуtheTime = TimeValue ("22:10:17")Отладка. Распечатать времяКонец подписки |
Результат:
Функция буднего дня VBA
Вы можете использовать функцию дня недели, чтобы вернуть целое число от 1 до 7, представляющее день недели из введенной даты.
Синтаксис функции буднего дня:
День недели (Date, [Firstdayofweek]), где:
- Дата - дата, из которой вы хотите извлечь значение дня недели.
- Первый день недели (По желанию) - константа, указывающая день недели, который функция должна использовать в качестве первого дня недели. Если пусто, то воскресенье используется как первый день недели. Firstdayofweek может быть одним из следующих значений:
-vbSunday - использовать воскресенье как первый день недели.
-vbMonday - использовать понедельник как первый день недели.
-vbTuesday - вторник используется в качестве первого дня недели.
-vbWednesday - среда как первый день недели.
-vbThursday - использует четверг как первый день недели.
-vbFriday - использовать пятницу как первый день недели.
-vbSaturday - использовать субботу как первый день недели.
-vbUseSystemDayOfTheWeek - использует первый день недели, указанный в настройках вашей системы.
В следующем коде показано, как использовать функцию дня недели:
1234567 | Sub UsingTheWeekdayFunction ()Dim theWeekDay as IntegertheWeekDay = будний день («20.11.2019»)Debug.Print theWeekDayКонец подписки |
Результат:
Функция VBA WeekdayName
Вы можете использовать функцию WeekdayName, чтобы вернуть название дня недели из введенного номера дня недели.
Синтаксис функции WeekdayName:
WeekdayName (Weekday, [Abbreviate], [Firstdayoftheweek]), где:
- День недели - целое число от 1 до 7.
- Сократить (По желанию) -Указывает, следует ли сокращать название дня недели. Если пусто, используется значение по умолчанию False.
- Первый день недели (По желанию) - константа, указывающая день недели, который функция должна использовать в качестве первого дня недели. Если пусто, то воскресенье используется как первый день недели. Firstdayofweek может быть одним из следующих значений:
-vbSunday - использовать воскресенье как первый день недели.
-vbMonday - использовать понедельник как первый день недели.
-vbTuesday - вторник используется как первый день недели.
-vbWednesday - среда как первый день недели.
-vbThursday - использует четверг как первый день недели.
-vbFriday - использовать пятницу как первый день недели.
-vbSaturday - использовать субботу как первый день недели.
-vbUseSystemDayOfTheWeek - использует первый день недели, указанный в настройках вашей системы.
12345678 | Sub UsingTheWeekdayNameFunction ()Уменьшите цвет WeekdayName как строкуtheWeekdayName = Название дня недели (4)Debug.Print theWeekdayNameКонец подписки |
Результат:
Функция года VBA
Вы можете использовать функцию Year, чтобы вернуть год даты ввода.
Синтаксис функции года:
Год (Date_value) где:
- Date_value - дата, из которой вы хотите извлечь год.
В следующем коде показано, как использовать функцию года:
12345678 | Sub UsingTheYearFunction ()Уменьшить год как целое числоtheYear = Год ("11/12/2010")Отладка. Распечатать годКонец подписки |
Результат:
Сравнение дат в VBA
Вы можете сравнивать даты с помощью операторов>, <и = в VBA. В следующем коде показано, как сравнить две даты в VBA.
12345678910111213141516171819 | Sub ComparingDates ()Тусклая дата Один как ДатаТусклая дата: два как датаdateOne = "10.10.2010"dateTwo = "11.11.2010"Если dateOne> dateTwo ТогдаDebug.Print "dateOne - более поздняя дата"ElseIf dateOne = dateTwo ТогдаDebug.Print "Две даты равны"ЕщеDebug.Print "dateTwo - более поздняя дата"Конец, еслиКонец подписки |
Узнайте больше о том, как форматировать даты как строки, просмотрев это руководство.