У цьому підручнику ми збираємося пройти через різні вбудовані функції дати VBA.
Функція дати VBA
Ви можете використовувати функцію дати, щоб повернути поточну дату.
Синтаксис функції Date - Date (). У ньому немає аргументів.
Наступний код показує, як використовувати функцію дати:
12345678 | Додаткове використанняTheDateFunction ()Затемніть дату як датуtheDate = Date ()Налагодження.Надрукуйте датуEnd Sub |
Результат такий:
Функція VBA зараз
Ви можете використовувати функцію Now для повернення поточної дати та часу.
Синтаксис функції Now - Now (). У ньому немає аргументів.
Наступний код показує, як використовувати функцію Now:
12345678 | Додаткове використанняTheNowFunction ()Затемніть дату як датуtheDate = Зараз ()Налагодження.Надрукуйте датуEnd Sub |
Результат такий:
Функція VBA Time
Ви можете використовувати функцію часу, щоб повернути поточний час.
Синтаксис функції часу - Time (). У ньому немає аргументів.
Наступний код показує, як використовувати функцію часу:
12345678 | Додаткове використанняTheTimeFunction ()Затемніть час як датуtheTime = Час ()Налагодження.Надрукуйте часEnd Sub |
Результат такий:
Функція додавання дати VBA
Ви можете використовувати функцію DateAdd, щоб додати дату/час до дати/часу, і функція поверне отриману дату/час.
Синтаксис функції DateAdd такий:
DateAdd (Інтервал, Номер, Дата), де:
- Інтервал - рядок, який визначає тип інтервалу для використання. Інтервал може бути одним із таких значень:
"D" - день
"Ww" - тиждень
"W" - будній день
"M" - місяць
“Q” - квартал
"Рррр" - рік
"Y" - день у році
"H" - година
“N” - хвилина
"S" - другий
- Номер - кількість інтервалів, які потрібно додати до початкової дати/часу.
- Дата - початкова дата/час.
Примітка: При використанні дат у вашому коді ви повинні оточити їх # або лапками.
Наступний код показує, як використовувати функцію DateAdd:
123456789 | Додаткове використанняTheDateAddFunction ()Затемнити пізніше Дата як датаlaterDate = DateAdd ("m", 10, "11/12/2019")Налагодження.Надрукувати пізнішеДатаEnd Sub |
Результат такий:
Функція VBA DateDiff
Ви можете використовувати функцію DateDiff, щоб отримати різницю між двома датами на основі визначеного часового інтервалу.
Синтаксис функції DateDiff такий:
DateDiff (Інтервал, Дата1, Дата2, [Перший день тижня], [Перший тиждень]) де:
- Інтервал - рядок, який визначає тип інтервалу для використання. Інтервал може бути одним із таких значень:
"D" - день
"Ww" - тиждень
"W" - будній день
"M" - місяць
“Q” - квартал
"Рррр" - рік
"Y" - день у році
"H" - година
“N” - хвилина
"S" - другий
- Дата1 - значення дати, що представляє більш ранню дату.
- Date2 - значення дати, що представляє пізнішу дату.
- Перший день тижня (Необов’язково) - Константа, яка визначає день тижня, який функція повинна використовувати як перший день тижня. Якщо чиста неділя використовується як перший день тижня. Перший день тижня може бути одним із таких значень:
-vbSunday - використовує неділю як перший день тижня.
-vbMonday - використовує понеділок як перший день тижня.
-vbTuesday - використовує вівторок як перший день тижня.
-vbWednesday - використовує середу як перший день тижня.
-vbThursday - використовує четвер як перший день тижня.
-vbFriday - використовує п’ятницю як перший день тижня.
-vbСубота - використовує суботу як перший день тижня.
-vbUseSystemDayOfTheWeek - використовує перший день тижня, який визначається налаштуваннями вашої системи.
- Перше тиждень (Необов’язково) - Константа, яка визначає перший тиждень року. Якщо пусто, то тиждень 1 січня використовується як перший тиждень року. Перший тиждень може бути одним із таких значень:
-vbFirstJan1 - використовує тиждень, що містить 1 січня.
-vbFirstFourDays - використовує перший тиждень, що містить щонайменше чотири дні у новому році.
-vbFirstFullWeek - використовує перший повний тиждень у році.
-vbSystem - використовує перший тиждень року відповідно до налаштувань системи.
Наступний код показує, як використовувати функцію DateDiff:
123456789 | Додаткове використанняTheDateDiffFunction ()Пригадуйте різницю між двома датами надовгоtheDifferenceBetweenTwoDates = DateDiff ("q", "11/11/2010", "10/12/2012")Налагодження. Надрукуйте різницю між двома датамиEnd Sub |
Результат такий:
Функція VBA DatePart
Ви можете використовувати функцію DatePart, щоб повернути частину (день, тиждень, квартал, місяць тощо) заданої дати.
Синтаксис функції DatePart такий:
Частина дати (Інтервал, Дата, [Перший день тижня], [Перший тиждень року]) де:
- Інтервал - рядок, який визначає частину дати для повернення. Інтервал може бути одним із таких значень:
"D" - день
"Ww" - тиждень
"W" - будній день
"M" - місяць
“Q” - квартал
"Рррр" - рік
"Y" - день у році
"H" - година
“N” - хвилина
"S" - другий
- Дата - дата, з якої потрібно повернути частину функції.
- Перший день тижня (Необов’язково) - Константа, яка визначає день тижня, який функція повинна використовувати як перший день тижня. Якщо чиста неділя використовується як перший день тижня. Перший день тижня може бути одним із таких значень:
-vbSunday - використовує неділю як перший день тижня.
-vbMonday - використовує понеділок як перший день тижня.
-vbTuesday - використовує вівторок як перший день тижня.
-vbWednesday - використовує середу як перший день тижня.
-vbThursday - використовує четвер як перший день тижня.
-vbFriday - використовує п’ятницю як перший день тижня.
-vbСубота - використовує суботу як перший день тижня.
-vbUseSystemDayOfTheWeek - використовує перший день тижня, який визначається налаштуваннями вашої системи.
- Перше тиждень (Необов’язково) - Константа, яка визначає перший тиждень року. Якщо пропущено, то тиждень 1 січня використовується як перший тиждень року. Перший тиждень може бути одним із таких значень:
-vbFirstJan1 - використовує тиждень, що містить 1 січня.
-vbFirstFourDays - використовує перший тиждень, що містить щонайменше чотири дні у новому році.
-vbFirstFullWeek - використовує перший повний тиждень у році.
-vbSystem - використовує перший тиждень року відповідно до налаштувань системи.
Наступний код показує, як використовувати функцію DatePart:
123456789 | Додаткове використанняTheDatePartFunction ()Затемніть частину дати як ціле числоthePartOfTheDate = DatePart ("рррр", "12/12/2009")Налагодження.Надрукуйте частинуДатаEnd Sub |
Результат такий:
Функція VBA DateSerial
Функція VBA DateSerial приймає введення року, місяця та дня та повертає дату.
Синтаксис функції DateSerial такий:
DateSerial (рік, місяць, день) де:
- Рік - ціле число від 100 до 9999, що представляє рік.
- Місяць - ціле число, що представляє місяць.
- День - ціле число, що представляє день.
Наступний код показує, як використовувати функцію DateSerial:
123456789 | Додаткове використанняTheDateSerialFunction ()Затемніть дату як датуtheDate = DateSerial (2010, 11, 10)Налагодження.Надрукуйте датуEnd Sub |
Результат такий:
Функція VBA DateValue
Функція DateValue повертає Date, коли їй надано рядкове представлення дати.
Синтаксис функції DateValue такий:
DateValue (Дата) де:
- Дата - рядок, що представляє дату.
Наступний код показує, як використовувати функцію DateValue:
123456789 | Додаткове використанняTheDateValueFunction ()Затемніть дату як датуtheDate = DateValue ("29 жовтня 2010 р.")Налагодження.Надрукуйте датуEnd Sub |
Результат такий:
Функція VBA Day
Ви можете використовувати функцію «День», щоб повернути день введення дати.
Синтаксис функції Day такий:
День (Date_value), де:
- Date_value - Дата, з якої потрібно виділити день.
Наступний код показує, як користуватися функцією "День":
123456789 | Додаткове використанняTheDayFunction ()Затемніть день як ціле числоtheDay = Day ("10/12/2010")Налагодження. Друк дняEnd Sub |
Результат такий:
Функція години VBA
Ви можете використовувати функцію Година, щоб повернути годину введеного часу.
Синтаксис функції Година такий:
Година (час) де:
- Час - час, з якого потрібно виділити годину.
Наступний код показує, як використовувати функцію Година:
123456789 | Додаткове використанняTheHourFunction ()Затемніть годину як ціле числоtheHour = Hour ("2:14:17 AM")Налагодження.Надрукуйте годинуEnd Sub |
Результат такий:
Функція VBA Minute
Ви можете використовувати функцію хвилини, щоб повернути значення хвилини введеного часу.
Синтаксис функції хвилини такий:
Хвилина (час) де:
- Час - час, з якого потрібно витягти значення хвилини.
Наступний код показує, як використовувати функцію хвилини:
123456789 | Додаткове використанняTheMinuteFunction ()Затемніть значення MinuteValue як ціле числоtheMinuteValue = Хвилина ("2:14:17 AM")Налагодження.Надрукуйте MinuteValueEnd Sub |
Результат такий:
Друга функція VBA
Ви можете використовувати другу функцію, щоб повернути друге значення часу введення.
Синтаксис другої функції такий:
Другий (час) де:
- Час - час, з якого потрібно витягнути друге значення.
Наступний код показує, як використовувати Другу функцію:
123456789 | Додаткове використанняTheSecondFunction ()Затемніть друге значення як ціле числоtheSecondValue = Second ("2:14:17 AM")Налагодження.Надрукуйте друге значенняEnd Sub |
Результат такий:
Функція місяця VBA
Ви можете використовувати функцію місяця, щоб повернути місяць дати введення.
Синтаксис функції місяця такий:
Місяць (Date_value) де:
- Date_value - Дата, з якої потрібно витягнути місяць.
Наступний код показує, як використовувати функцію місяця:
12345678 | Додаткове використанняTheMonthFunction ()Затемніть місяць як ціле числоtheMonth = Month ("18.11.2010")Налагодження.Надрукуйте місяцьEnd Sub |
Результат такий:
Функція імені місяця VBA
Ви можете використовувати функцію «Назва місяця», щоб повернути назву місяця з введеного номера місяця.
Синтаксис функції MonthName такий:
Назва місяця (Кількість_місяця, [Скоротити]) де:
- Число_місяця - ціле число від 1 до 12.
- Скоротіть (Необов’язково) - Вказує, чи слід скорочувати назву місяця. Якщо пусто, використовується значення за замовчуванням False.
12345678 | Додаткове використанняTheMonthNameFunction ()Затемніть ім'я місяця як рядокtheMonthName = Назва місяця (12, Істина)Налагодження.НадрукуйтеMonthNameEnd Sub |
Результат такий:
Функція VBA TimeSerial
Функція TimeSerial приймає години введення, хвилини та секунди та повертає час.
Синтаксис функції TimeSerial такий:
TimeSerial (Година, Хвилина, Секунда) де:
- Година - ціле число від 0 до 23, що представляє значення години.
- Хвилина - ціле число від 0 до 59, що представляє значення хвилини.
- Друге - ціле значення від 0 до 59, що представляє друге значення.
Наступний код показує, як використовувати функцію TimeSerial:
12345678 | Додаткове використанняTheTimeSerialFunction ()Затемніть час як датуtheTime = TimeSerial (1, 10, 15)Налагодження.Надрукуйте часEnd Sub |
Результат такий:
Функція VBA TimeValue
Функція TimeValue повертає час із рядкового представлення дати чи часу.
Синтаксис функції TimeValue такий:
TimeValue (Час), де:
- Час - рядок, що представляє час.
Наступний код показує, як використовувати функцію TimeValue:
12345678 | Додаткове використанняTheTimeValueFunction ()Затемніть час як датуtheTime = TimeValue ("22:10:17")Налагодження.Надрукуйте часEnd Sub |
Результат такий:
Функція будня VBA
Ви можете використовувати функцію «День тижня», щоб повернути ціле число від 1 до 7, що представляє день тижня з дати введення.
Синтаксис функції тижня:
День тижня (дата, [перший день тижня]), де:
- Дата - дата, з якої потрібно витягти значення дня тижня.
- Перший день тижня (Необов’язково) - Константа, яка визначає день тижня, який функція повинна використовувати як перший день тижня. Якщо чиста неділя використовується як перший день тижня. Перший день тижня може бути одним із таких значень:
-vbSunday - використовує неділю як перший день тижня.
-vbMonday - використовує понеділок як перший день тижня.
-vbTuesday - використовує вівторок як перший день тижня.
-vbWednesday - використовує середу як перший день тижня.
-vbThursday - використовує четвер як перший день тижня.
-vbFriday - використовує п’ятницю як перший день тижня.
-vbСубота - використовує суботу як перший день тижня.
-vbUseSystemDayOfTheWeek - використовує перший день тижня, який визначається налаштуваннями вашої системи.
Наступний код показує, як користуватися функцією «Будній день»:
1234567 | Додаткове використанняWeekdayFunction ()Затемніть тижневий день як ціле числоtheWeekDay = Будній день ("20.11.2019")Налагодження. Надрукуйте тижденьEnd Sub |
Результат такий:
Функція VBA WeekdayName
Ви можете використовувати функцію WeekdayName, щоб повернути назву дня тижня з введеного номера дня тижня.
Синтаксис функції WeekdayName такий:
WeekdayName (День тижня, [Скоротити], [Перший день тижня]) де:
- День тижня - ціле число від 1 до 7.
- Скоротіть (Необов’язково) -Вказує, чи слід скорочувати назву дня тижня. Якщо пусто, використовується значення за замовчуванням False.
- Перший день тижня (Необов’язково) - Константа, яка визначає день тижня, який функція повинна використовувати як перший день тижня. Якщо чиста неділя використовується як перший день тижня. Перший день тижня може бути одним із таких значень:
-vbSunday - використовує неділю як перший день тижня.
-vbMonday - використовує понеділок як перший день тижня.
-vbTuesday - використовує вівторок як перший день тижня.
-vbWednesday - використовує середу як перший день тижня.
-vbThursday - використовує четвер як перший день тижня.
-vbFriday - використовує п’ятницю як перший день тижня.
-vbСубота - використовує суботу як перший день тижня.
-vbUseSystemDayOfTheWeek - використовує перший день тижня, який визначається налаштуваннями вашої системи.
12345678 | Додаткове використанняTheWeekdayNameFunction ()Затемніть ім’я вихідного дня як рядокtheWeekdayName = Назва дня тижня (4)Налагодження.НадрукуйтеНазва вихідного дняEnd Sub |
Результат такий:
Річна функція VBA
Ви можете використовувати функцію року, щоб повернути рік дати введення.
Синтаксис функції року такий:
Рік (Date_value) де:
- Date_value - Дата, з якої потрібно витягнути рік.
Наступний код показує, як використовувати функцію Рік:
12345678 | Додаткове використанняYearFunction ()Затемніть рік як ціле числорік = рік ("11/12/2010")Налагодження.Надрукуйте рікEnd Sub |
Результат такий:
Порівняння дат у VBA
Ви можете порівняти дати за допомогою операторів>, <і = у VBA. Наступний код показує, як порівняти дві дати у VBA.
12345678910111213141516171819 | Дані порівняння ()Затемнити дату Один як датаЗатемнити дату Два як датуdateOne = "10.10.2010"dateTwo = "11.11.2010"Якщо dateOne> dateTwo ТодіDebug.Print "dateOne is the later date"ElseIf dateOne = dateTwo ТодіDebug.Print "Дві дати рівні"ІнакшеDebug.Print "dateTwo is the later date"Закінчити ЯкщоEnd Sub |
Щоб дізнатися більше про те, як відформатувати дати як рядки, перегляньте цей підручник.