Зміст
У додатку Microsoft Visual Basic функції дати або будь-які концепції, пов'язані з датою, необхідні для виконання різних операцій над набором даних. Ви можете опинитися в різних ситуаціях, коли вам доведеться використовувати ці функції. У цьому уроці ви дізнаєтесь про функцію Date у VBA з відповідними прикладами та належними ілюстраціями. Крім того, ми надамо вам декілька функцій датиякі ви можете реалізувати у своєму робочому аркуші.
Завантажити Практичний посібник
Використання VBA Date.xlsm
Вступ до роботи з функцією дати VBA
Excel класифікує дати в категоріях Дата/час Це вбудована функція, яку ми можемо використовувати в макросах VBA для виконання будь-яких операцій з датами.
Перш ніж почати роботу з функцією "Дата", ви повинні знати про Змінні дати в VBA .
Синтаксис
Date()⏺ Аргументи Пояснення
Аргументів немає.
⏺ Повернення
Повертає поточну дату.
⏺ Доступно в
Excel для Office 365, Excel 2019, Excel 2016, Excel 2013, Excel 2011 для Mac, Excel 2010, Excel 2007, Excel 2003, Excel XP, Excel 2000
Приклад
Як відомо, аргументів не існує, їх можна просто ввести, як це зроблено нижче:
Sub vba_date() Dim current_date As Date current_date = Date MsgBox current_date End Sub
Коли ми працюємо з функцією Date, ми не ставимо ніяких круглих дужок в кодах VBA, як у цьому прикладі.
Вихідні дані :
12 Функції дати у VBA, які варто вивчити
Тепер, в наступних розділах, ми покажемо вам деякі додаткові функції для роботи з датами, які можна використовувати для багатьох цілей в VBA. Прочитайте ці розділи, щоб знати всі можливі способи роботи з датою в VBA. Ми радимо вам зберегти їх у своєму арсеналі. Це, безсумнівно, поліпшить ваші знання.
1. Функція DateAdd як дата у VBA
У VBA ми використовуємо функцію DateAdd для додавання днів у певній даті. Після цього вона поверне отриману дату.
Синтаксис:
DateAdd(інтервал, число, дата)
Аргументи:
інтервал: Обов'язкове значення: Рядковий вираз - інтервал часу, який потрібно додати.
номер: Обов'язкове поле - Числовий вираз, який є кількістю інтервалів, які потрібно додати. Може бути додатним (для отримання дат у майбутньому) або від'ємним (для отримання дат у минулому).
побачення: Початкова дата/час.
Наразі, на сьогоднішній день інтервал аргументи можуть мати наступні параметри:
yyyy - Рік
q - Квартал
m - Місяць
y - День року
d - День
w - Будний день
ww - Тиждень
h - Година
n - Хвилина
s - Другий
Фрагмент коду :
Sub dateadd_function() Dim result_Date As Date result_Date = DateAdd("d", 15, "1/31/2022") MsgBox result_Date End Sub
Виходьте:
Як бачите, до поточної дати в VBA додалося 15 дат.
Читати далі: Як використовувати функцію IsDate у VBA (3 приклади)
2. функція DateDiff у VBA
Функція DateDiff повертає Variant (Long), що визначає кількість часових розривів між двома заданими датами.
Синтаксис :
DateDiff(interval, date1, date2, [ firstdayofweek, [ firstweekofyear ]] )
Аргументи:
інтервал: Обов'язкове значення - це інтервал часу, який ви хочете додати до строкового виразу, тобто проміжок часу, який ви використовуєте для обчислення різниці між двома датами.
дата1, дата2 : Обов'язкове; Варіант (Дата). Дві дати, які ви хочете використовувати в розрахунку.
перший день тижня: Необов'язкова константа, яка визначає перший день тижня. Якщо не задано, то вважається неділя.
перший тиждень року: Необов'язкова константа, яка встановлює перший тиждень року. Якщо константа не встановлена, то першим тижнем вважається тиждень, в якому настає 1 січня.
Наразі, на сьогоднішній день інтервал аргументи можуть мати наступні параметри:
yyyy - Рік
q - Квартал
m - Місяць
y - День року
d - День
w - Будний день
ww - Тиждень
h - Година
n - Хвилина
s - Другий
На сьогоднішній день, на жаль, це не так. перший день тижня аргумент має такі налаштування:
vbSunday - використовує неділю як найголовніший день тижня.
vbMonday - використовує понеділок як перший день тижня.
vbВівторок - працює у вівторок як перший день тижня.
vbСереда - використовує середу як перший день тижня.
vbЧетверг - працює в четвер, як найсприятливіший день тижня.
vbFriday - використовує п'ятницю як перший день тижня.
vbSaturday - працює в суботу як перший день тижня.
vbUseSystemDayOfTheWeek - використовує перший день тижня, визначений у налаштуваннях вашого пристрою.
На сьогоднішній день, на жаль, це не так. перший тиждень року має такі налаштування:
vbFirstJan1 - використовує тиждень, що містить 1 січня.
vbFirstFourDays - працює перший тиждень, який має не менше чотирьох робочих днів у новому році.
vbFirstFullWeek - працює перший повний тиждень року.
vbSystem - використовує перший тиждень року, визначений місцезнаходженням вашого пристрою.
Фрагмент коду:
Sub DateDiff_Function() Dim result As Long result = DateDiff("d", "1/31/2022", "2/12/2022") MsgBox result End Sub
Вихідні дані :
В кінці він повертає різницю між двома датами в VBA.
Читати далі: Як використовувати функцію VBA DateDiff в Excel (9 прикладів)
3. функція DatePart як дата
Функція ДатаЧастини повертає Варіант (Ціле число), що містить визначену частину наданої дати.
Синтаксис :
DatePart(інтервал, дата, [ перший день тижня, [ перший тиждень року ]])
Аргументи:
інтервал: Обов'язкове значення - це інтервал часу, який ви хочете додати до строкового виразу, тобто проміжок часу, який ви використовуєте для обчислення різниці між двома датами.
побачення: Обов'язкове для заповнення; Варіант (Дата) - дата, яку потрібно використовувати при розрахунку.
перший день тижня: Необов'язкова константа, яка визначає перший день тижня. Якщо не задано, то вважається неділя.
перший тиждень року: Необов'язкова константа, яка встановлює перший тиждень року. Якщо константа не встановлена, то першим тижнем вважається тиждень, в якому настає 1 січня.
Наразі, на сьогоднішній день інтервал аргументи можуть мати наступні параметри:
yyyy - Рік
q - Квартал
m - Місяць
y - День року
d - День
w - Будний день
ww - Тиждень
h - Година
n - Хвилина
s - Другий
На сьогоднішній день, на жаль, це не так. перший день тижня аргумент має такі налаштування:
vbSunday - використовує неділю як найголовніший день тижня.
vbMonday - використовує понеділок як перший день тижня.
vbВівторок - працює у вівторок як перший день тижня.
vbСереда - використовує середу як перший день тижня.
vbЧетверг - працює в четвер, як найсприятливіший день тижня.
vbFriday - використовує п'ятницю як перший день тижня.
vbSaturday - працює в суботу як перший день тижня.
vbUseSystemDayOfTheWeek - використовує перший день тижня, визначений у налаштуваннях вашого пристрою.
На сьогоднішній день, на жаль, це не так. перший тиждень року має ці цінності:
vbFirstJan1 - працює тиждень, включаючи 1 січня.
vbFirstFourDays - використовує перший тиждень, який має не більше чотирьох неповних днів у новому році.
vbFirstFullWeek - використовує перший повний тиждень року.
vbSystem - працює перший тиждень року відповідно до обраного вами місця розташування пристрою.
Фрагмент коду :
Sub DatePart_Function() Dim result As Integer result = DatePart("m", "10/11/2022") MsgBox result End Sub
Вихідні дані :
Таким чином, ви можете використовувати цю функцію дати в кодах VBA.
Читати далі: Як використовувати функцію VBA FileDateTime в Excel (3 приклади)
4. функція DateSerial
Ви можете переглянути дату на основі введених року, місяця та дня за допомогою кнопки DateSerial функцію.
Синтаксис:
DateSerial(рік, місяць, день)
Аргументи:
рік - Обов'язкове поле - число від 100 до 9999 включно або числовий вираз, що символізує рік.
місяць - Обов'язкове поле - цілочисельне значення, що визначає місяць.
день - Обов'язкове поле - цілочисельне значення, що описує день.
Фрагмент коду:
Sub date_serial() Dim date_special As Date date_special = DateSerial(2022, 1, 11) MsgBox date_special End Sub
Вихідні дані :
Читати далі: Як використовувати VBA TimeSerial в Excel (3 приклади)
4. функція VBA DateValue
Для визначення дати ми використовуємо функцію DateValue.
Синтаксис :
DateValue(дата)
Аргумент:
Тут, в рамках програми "Відкритий світ", відбулася презентація дата зазвичай є рядковим виразом, що описує дату з 1 січня 100 року по 31 грудня 9999 року. Незалежно від того, дата може бути будь-яким виразом, який може символізувати дату, час або і дату, і час у цьому діапазоні.
Фрагмент коду:
Sub Date_value() Dim result As Date result = DateValue("10 січня 2022 року") MsgBox result End Sub
Вихідні дані :
Як бачимо, ми успішно використали функцію дати в кодах на VBA.
5. функція дня на мові VBA
Він повертає варіант (ціле число), що визначає дійсне число від 1 до 31 включно, яке передає день місяця.
Синтаксис :
День (дата)
Аргумент:
Необхідний аргумент дати може бути будь-яким варіантом, числовим виразом, рядковим виразом або будь-якою комбінацією. Він представляє собою дату. Якщо дата включає Null, він також поверне Null.
Фрагмент коду:
Sub day_function() Dim date1, the_day date1 = #12/12/2023# the_day = Day(date1) MsgBox the_day End Sub
Виходьте:
Як бачимо, за допомогою кодів VBA ми встановили, що день заданої дати дорівнює 12.
Пов'язаний вміст: Функція форматування VBA в Excel (8 варіантів використання з прикладами)
6. функція місяця VBA як дата
Він повертає Варіант (Ціле число), що визначає дійсне число від 1 до 12 включно, яке передає місяць року.
Синтаксис :
Місяць (число)
Аргумент:
Необхідний аргумент дати може бути будь-яким варіантом, числовим виразом, рядковим виразом або будь-якою комбінацією. Він представляє собою дату. Якщо дата включає Null, він також поверне Null.
Фрагмент коду:
Sub month_function() Dim date1, the_month date1 = #12/12/2023# the_month = Month(date1) MsgBox the_month End Sub
Виходьте:
Пов'язаний контент: Як використовувати праву функцію VBA в Excel (6 прикладів)
Схожі читання
- Як використовувати функцію Environ у VBA (4 приклади)
- Як використовувати VBA та функції в Excel (4 приклади)
- Оператор VBA If - Then - Else в Excel (4 приклади)
- Як використовувати функцію Абсцис VBA в Excel (9 прикладів)
- Як використовувати конкатенацію в Excel VBA (4 способи)
7. функція MonthName
Повертає рядок, що демонструє вказаний місяць.
Синтаксис :
MonthName(місяць, [ скорочено ])
Аргумент:
місяць: Обов'язково - цифрова назва місяця, наприклад, січень - 1, лютий - 2 і так далі.
скоротити: Це необов'язкове логічне значення, яке демонструє, чи потрібно скорочувати назву місяця. Якщо його пропустити, то за замовчуванням буде встановлено значення False, яке вказує на те, що назва місяця не скорочується.
Фрагмент коду:
Sub MonthName_Function() Dim month_name As String month_name = MonthName(9, True) MsgBox month_name End Sub
Виходьте:
Як бачимо, ми знайшли назву місяця за допомогою цієї функції VBA Date Function.
8. функція робочого дня
Він повертає Варіант ( Ціле число ), що містить дійсне число, яке виражає день тижня.
Синтаксис :
День тижня (дата, [ перший день тижня ])
Аргумент:
побачення: Необхідний аргумент дати може бути будь-яким варіантом, числовим виразом, рядковим виразом або будь-якою комбінацією. Він представляє собою дату. Якщо дата включає Null, він також поверне Null.
перший день тижня: Необов'язкова константа, яка визначає перший день тижня. Якщо не задано, то вважається неділя.
На сьогоднішній день, на жаль, це не так. перший день тижня аргумент має такі налаштування:
vbSunday - використовує неділю як найголовніший день тижня.
vbMonday - використовує понеділок як перший день тижня.
vbВівторок - працює у вівторок як перший день тижня.
vbСереда - використовує середу як перший день тижня.
vbЧетверг - працює в четвер, як найсприятливіший день тижня.
vbFriday - використовує п'ятницю як перший день тижня.
vbSaturday - працює в суботу як перший день тижня.
vbUseSystemDayOfTheWeek - використовує перший день тижня, визначений у налаштуваннях вашого пристрою.
Параметри повернення
Тепер ця функція повертає ціле число. Отже, значення цих цілих чисел наступне:
1 - Неділя
2 - Понеділок
3 - Вівторок
4 - Середа
5 - Четвер
6 - П'ятниця
7 - Субота
Фрагмент коду:
Sub Weekday_Function() Dim week_day As Integer week_day = Weekday("4/27/2022") MsgBox week_day End Sub
Виходьте:
Як бачимо, функція дати VBA повертає 4, що означає середу.
Пов'язаний контент: Як використовувати функцію "Виправити" в Excel VBA (4 приклади)
9. функція VBA WeekdayName
Повертає рядок, що відображає обмежений день тижня.
Синтаксис :
WeekdayName(день тижня, скорочено, перший день тижня)
Аргумент:
будній день: Обов'язкове для заповнення поле. Числовий ідентифікатор дня тижня. Числове значення кожного дня залежить від налаштування параметра firstdayofweek.
скоротити: Це необов'язкове логічне значення, яке вказує, чи потрібно скорочувати назву дня тижня. Якщо його пропустити, то за замовчуванням буде встановлено значення False, що означає, що назва дня тижня не скорочується або не змінюється.
перший день тижня: Необов'язкове для заповнення поле - числове значення, що вказує на перший день тижня. Може мати різні значення.
На сьогоднішній день, на жаль, це не так. перший день тижня аргумент може мати наступні значення:
vbSunday - використовує неділю як найголовніший день тижня.
vbMonday - використовує понеділок як перший день тижня.
vbВівторок - працює у вівторок як перший день тижня.
vbСереда - використовує середу як перший день тижня.
vbЧетверг - працює в четвер, як найсприятливіший день тижня.
vbFriday - використовує п'ятницю як перший день тижня.
vbSaturday - працює в суботу як перший день тижня.
vbUseSystemDayOfTheWeek - використовує перший день тижня, визначений у налаштуваннях вашого пристрою.
Фрагмент коду:
Sub WeekdayName_Function() Dim weekday_name As String weekday_name = WeekdayName(6) MsgBox weekday_name End Sub
Виходьте:
Як бачимо, у вищенаведених VBA-кодах відображається назва дня тижня.
Стаття на тему: Як використовувати функцію назви дня тижня VBA в Excel (2 приклади)
10. функція року в VBA Date
Він повертає варіант (ціле число), що містить дійсне число, яке виражає рік.
Синтаксис :
Рік (дата)
Аргумент:
Необхідний аргумент дати - це будь-який варіант, числовий вираз, рядковий вираз або будь-яка комбінація. Він представляє собою дату. Якщо дата включає Null, він також поверне Null.
Фрагмент коду:
Sub year_function() Dim date1, the_year date1 = #12/12/2023# the_year = Year(date1) MsgBox the_year End Sub
Виходьте:
Тут можна побачити рік даної дати після впровадження коду VBA.
Читати далі: Як використовувати функцію заміни VBA в Excel (11 прикладів)
11. функція ФорматДатаЧас
Ця функція повертає вираз у форматі дати або часу.
Синтаксис :
FormatDateTime(Date, [ NamedFormat ])
Аргумент:
Побачення: Обов'язкове поле, вираз дати, що підлягає форматуванню.
NamedFormat: Це необов'язкове числове значення, яке відображає формат дати/часу. Якщо його не вказати, буде використано формат vbGeneralDate .
На сьогоднішній день, на жаль, це не так. NamedFormat може мати наступні значення:
vbGeneralDate(0): Показати дату та/або час. Якщо є частина дати, виразити її у вигляді короткої дати. Якщо є частина часу, відобразити її у вигляді довгого часу. Обидві частини виставляються, якщо вони присутні.
vbLongDate(1): Зобразіть дату, використовуючи конфігурацію довгої дати, вибрану в регіональних налаштуваннях вашого комп'ютера.
vbShortDate(2): Відображення дати за допомогою короткого формату дати, вказаного в регіональних налаштуваннях комп'ютера.
vbLongTime(3): Відображати час, використовуючи формат часу, вказаний у регіональних налаштуваннях комп'ютера.
vbShortTime(4): Відображення часу з використанням 24-годинного формату (чч:мм).
Фрагмент коду:
Sub FormatDateTime_Function() d = ("2022-02-03 18:25") MsgBox ("Формат 1 : " & FormatDateTime(d)) MsgBox ("Формат 2 : " & FormatDateTime(d, 1)) MsgBox ("Формат 3 : " & FormatDateTime(d, 2)) MsgBox ("Формат 4 : " & FormatDateTime(d, 3)) MsgBox ("Формат 5 : " & FormatDateTime(d, 4)) End Sub
Виходьте:
Після запуску коду ви побачите наступні діалогові вікна:
Тут ви можете подивитися всі формати часу і дати у VBA.
Читати далі: Як використовувати функцію TimeValue в VBA (6 актуальних прикладів)
12. функція VBA CDate
Функція перетворює дійсний вираз дати і часу в типову дату.
Синтаксис :
CDate(дата)
Аргумент:
Необхідний аргумент дати - це будь-який варіант, числовий вираз, рядковий вираз або будь-яка комбінація. Він представляє собою дату. Якщо дата включає Null, він також поверне Null.
Фрагмент коду:
Sub Cdate_Function() Dim date1 As Variant Dim date2 As Variant date1 = CDate("11 Mar 2022") date2 = CDate("29 Sep 2023") MsgBox ("Перша дата : " & date1 & vbCrLf & "Друга дата : " & date2) End Sub
Виходьте:
Як бачимо, наш VBA-код просто повернув типовий формат дати в Excel.
Пов'язаний вміст: Як використовувати функцію DIR в Excel (7 прикладів)
Приклади роботи з датою в VBA
У наступних розділах ми надамо вам три практичних і придатних приклади роботи з датами за допомогою VBA. Ці приклади будуть містити проблеми, пов'язані з датами, та їх вирішення. Ми рекомендуємо вам прочитати і попрактикувати всі ці приклади, щоб покращити свої знання VBA. Давайте почнемо.
1. розрахунок прострочених днів за допомогою дати в VBA
Термін "прострочений" означає такий, що відбувається пізно або після встановленого терміну. Пізно, зокрема, після встановленого терміну або занадто пізно для виконання вимоги.
Припустимо, ви повинні були здати роботу в неділю, але сьогодні вівторок, а ви її не здали. Можна вважати, що це два прострочених дні.
Погляньте на наступний набір даних:
Тут у нас є набір даних про деяких студентів та дату здачі ними завдань. Ви можете побачити останню дату здачі. Наша мета - знайти прострочену дату на основі дати здачі. Тепер, щоб досягти цього, виконайте наступні кроки:
📌 Кроки
- Спочатку натисніть Alt+F11 на клавіатурі, щоб відкрити редактор VBA.
- Потім виберіть Вставка> Модуль .
- Після цього введіть наступний код:
Sub overdue_days() Dim cell As Integer Dim J As Integer Dim due_date As Date due_date = #1/11/2022# For cell = 5 To 11 If Cells(cell, 4).Value = due_date Then Cells(cell, 5).Value = "Подано сьогодні" ElseIf Cells(cell, 4).Value> due_date Then J = due_date - Cells(cell, 4).Value J = Abs(J) Cells(cell, 5).Value = J & "Прострочено днів" Else Cells(cell, 5).Value = "Прострочення немає" End If Next cellEnd Sub
Ми використовували функція ABS прибрати знак мінус.
- Після цього збережіть файл.
- Після цього натисніть Alt+F8 на клавіатурі, щоб відкрити діалогове вікно Макрос.
- Далі оберіть
- Потім натисніть на кнопку Біжи .
Як бачите, ми успішно використали дату в VBA і знайшли прострочені дні.
Схожі читання
- Як використовувати функцію пробілу VBA в Excel (3 приклади)
- Використання функції VBA ChDir в Excel (4 відповідні приклади)
- Як використовувати функцію IsNull в Excel VBA (5 прикладів)
- Використання оператора VBA While Wend в Excel (4 приклади)
- Як викликати підлеглий елемент у VBA в Excel (4 приклади)
2. знайти рік народження за датою за допомогою VBA
Тепер ви можете знайти рік, починаючи з певної дати. Це досить просто.
Погляньте на наступний набір даних:
Тут ви можете побачити дату народження деяких осіб. Наша мета - витягти рік народження з дати, а також рік народження останнього запису Elizabeth.
📌 Кроки
- Спочатку натисніть Alt+F11 на клавіатурі, щоб відкрити редактор VBA.
- Потім виберіть Вставити модуль .
- Після цього введіть наступний код:
Sub find_year() Dim last_entry As Date Dim cell As Integer For cell = 5 To 11 Cells(cell, 4).Value = Year(Cells(cell, 3).Value) If cell = 11 Then last_entry = Cells(cell, 3).Value End If Next cell MsgBox "Рік народження останнього запису: " & Year(last_entry) End Sub
- Після цього збережіть файл.
- Після цього натисніть Alt+F8 на клавіатурі, щоб відкрити діалогове вікно Макрос.
- Далі оберіть знайти_рік .
- Потім натисніть на кнопку Біжи .
Нарешті, ви можете бачити, що ми успішно витягли рік народження з кожної дати. Крім того, ми знайшли рік народження останнього запису, використовуючи дату VBA в Excel.
3. додавання днів у даті за допомогою VBA
Тепер можна визначити змінну date і використовувати її для додавання дати. Для цього використовуємо ДатаДодавання За допомогою цієї функції можна додавати дні, місяці та роки до певної дати.
Погляньте на наступний набір даних:
Тут ви бачите деякі імена і деякі дати, пов'язані з ними. Тепер наша мета - додати до цих дат ще п'ять днів і згенерувати нову дату.
📌 Кроки
- Спочатку натисніть Alt+F11 на клавіатурі, щоб відкрити редактор VBA.
- Потім виберіть Вставити модуль .
- Після цього введіть наступний код:
Sub add_days() Dim first_date As Date Dim second_date As Date Dim cell As Integer For cell = 5 To 11 first_date = Cells(cell, 3).Value second_date = DateAdd("d", 5, first_date) Cells(cell, 4).Value = second_date Next cell End Sub
Тут ми використовували "d" як аргумент у функції DateAdd. Ви можете змінити його на "y" або "m", щоб додати роки або місяці відповідно,
- Після цього збережіть файл.
- Після цього натисніть Alt+F8 на клавіатурі, щоб відкрити діалогове вікно Макрос.
- Далі виберіть.
- Потім натисніть на кнопку Біжи .
Як бачите, ми успішно додали дні в дату за допомогою дати в VBA. Тепер ви можете модифікувати код на свій розсуд.
💬 Що варто пам'ятати
✎ Функція VBA Date фактично працює наступним чином функція TODAY в Excel.
✎ VBA DATE є енергонезалежною функцією в Excel, тобто збереже дані навіть при перерві в електропостачанні.
✎
В основному, VBA зберігає значення Date як DATE під час виконання.
✎
Отже, якщо спробувати присвоїти змінній дати рядок/текст, то це призведе до помилки.
✎
За замовчуванням значенням параметра Date є 0:00:00 (північ) 1 січня 0001 року.
Висновок
На закінчення, я сподіваюся, що цей підручник надав вам частину корисних знань про дату в кодах VBA. Ми рекомендуємо вам вивчити і застосувати всі ці інструкції до вашого набору даних. Завантажте практичний посібник і спробуйте їх самостійно. Крім того, не соромтеся залишати відгуки в розділі коментарів. Ваші цінні відгуки мотивують нас створювати подібні підручники.
Не забувайте слідкувати за новинами на нашому сайті Exceldemy.com для вирішення різних проблем, пов'язаних з Excel, та їх вирішення.
Вчіться новим методам і продовжуйте розвиватися!