Excel VBA DatePart

Припустимо, у наших даних є дати, і ми не знаємо, що це або тиждень, або в якій частині місяця. Існують різні способи дізнатися це. У Excel є кілька складних формул, які нам потрібно виконати, щоб знайти це. Наприклад, якщо є дата 02 лютого-2019, розрахунок, щоб визначити чверть цієї дати в excel є складним. Однак VBA надає нам дуже зручну функцію під назвою DatePart, яка виконує такі обчислення для нас.

Я вже пояснив вище, чому ми використовуємо функцію DatePart у VBA. Ця функція використовується для з'ясування частини дати, будь то день, місяць тиждень квартал або навіть години або секунди. Ця функція повертає ціле число як вихід. Щоб зрозуміти більше про цю функцію, спершу детально розберемося в синтаксисі цієї функції.

Синтаксис DatePart в Excel VBA

Давайте розглянемо нижній синтаксис DatePart в Excel VBA.

Як ми бачимо, на цю функцію подано чотири аргументи. Перші два аргументи є обов'язковими, тоді як два інші аргументи необов’язкові. Однак якщо ми не наводимо останні два аргументи, VBA має для нього свої власні значення за замовчуванням.

  • Інтервал: Цей аргумент подається як рядок для цієї функції. Цей аргумент може бути місяць, тиждень, рік, день або навіть година чи хвилини або секунди. Наприклад, для чверті синтаксис буде "q", або для року синтаксис буде "yyyy" тощо.
  • Дата: Це дата введення, ми надаємо цю функцію, частину якої ми хочемо дізнатися.
  • FirstDayofWeek: Це необов'язковий аргумент, який ми надаємо цій функції. Але якщо ми не забезпечимо функцію перших днів тижня, VBA автоматично розглядає НЕДІЛЬ як перший день тижня. Для надання цього аргументу існують різні синтаксиси, які є наступними:

vbUseSystem (у цьому синтаксисі використовується НАСТРОЮВАННЯ API NLS), vbSunday (це аргумент за замовчуванням), vbMonday, vbTuesday, vbWed Wednesday, vbTh Thursday, vbFriday, vbSaturday (Залишаються всі ці аргументи необов’язкові для наведення)

  • FirstWeekofYear: Це також необов'язковий аргумент для цієї функції. Але знову ж таки, якщо ми не наводимо цей аргумент, VBA автоматично вважає перший тиждень, який тиждень є першим з 1 січня. Також для цього аргументу існують різні синтаксиси, вони такі:

vbUseSystem, vbFirstJan1 (Це за замовчуванням), vbFirstFourDays (Цей аргумент починається з першого тижня, який має принаймні перші чотири дні в новому році), vbFirstFullWeek (Цей аргумент починається з першого повного тижня року).

Тепер ми дізналися про функції та її аргументи, давайте перевіримо цю функцію на прикладах.

Як використовувати функцію DatePart в Excel VBA?

Нижче наведено різні приклади використання функції DatePart в excel за допомогою коду VBA.

Ви можете завантажити цей шаблон VBA DatePart Excel тут - Шаблон VBA DatePart Excel

Excel VBA DatePart - приклад №1

Давайте візьмемо дані від користувача як дату та частину, про яку хоче дізнатися користувач, тоді ми використаємо функцію DatePart та відобразимо результат.

Для використання функції DatePart в Excel VBA виконайте наведені нижче дії:

Крок 1. На вкладці розробника у розділі коду натисніть на Visual basic, який переведе нас до редактора VB.

Крок 2: Опинившись в редакторі VB, вставте новий модуль у проект VBA, як показано нижче.

Крок 3: Тепер двічі клацніть на модулі і починайте оголошувати новий підпроцедур, як показано нижче.

Код:

 Sub Sample () Кінець Sub 

Крок 4: Визначте три змінні: одна як "Строка" та "дата", яка буде містити частину дати та дату нашого введення, а інша як ціле число, яке буде зберігати наш вихід.

Код:

 Sub Sample () Dim Dt As Date, Prt As String, Res As Integer End Sub 

Крок 5: У змінній дати запитайте інформацію про дату введення у користувача.

Код:

 Sub Sample () Dim Dt As Date, Prt As String, Res As Integer Dt = InputBox ("Введіть дату") End Sub 

Крок 6: У Prt, який є частиною, візьміть дані користувача від тієї дати, яку нам потрібно з'ясувати.

Код:

 Sub Sample () Dim Dt As Date, Prt As String, Res As Integer Dt = InputBox ("Введіть дату") Prt = InputBox ("Введіть частину дати") End sub 

Крок 7: Тепер у змінному Res, який є результатом, дізнаємось результат, використовуючи функцію DatePart наступним чином.

Код:

 Sub Sample () Dim Dt As Date, Prt As String, Res As Integer Dt = InputBox ("Ввести дату") Prt = InputBox ("Ввести частину дати") Res = DatePart (Prt, Dt) Кінець Sub 

Крок 8: Виведіть значення, збережене в Res, за допомогою функції msgbox.

Код:

 Sub Sample () Dim Dt As Date, Prt As String, Res As Integer Dt = InputBox ("Введіть дату") Prt = InputBox ("Введіть частину дати") Res = DatePart (Prt, Dt) MsgBox Res End Sub 

Крок 9: Тепер давайте запустимо вищевказаний код, натиснувши клавішу F5 або натиснувши кнопку Відтворити і вкажіть дату наступним чином.

Крок 10: Введіть значення «Частина дати».

Крок 11: Натисніть OK, щоб побачити результат, як показано нижче.

Ми отримуємо 1 в результаті дати, яку ми вказали, коли вхід падає в першому кварталі року.

Excel VBA DatePart - приклад №2

Цього разу давайте дамо дату безпосередньо функції у коді. Для використання функції DatePart в Excel VBA виконайте наведені нижче дії:

Крок 1: У цьому ж модулі визначте інший підпроцедур, як показано нижче.

Код:

 Sub Sample1 () Кінець Sub 

Крок 2: Визначте одну змінну як Цілий, а одну змінну як Дату, як показано нижче.

Код:

 Sub Sample1 () Dim Dt As Date, Res As Integer End Sub 

Крок 3: Укажіть дату змінної.

Код:

 Sub Sample1 () Dim Dt As Date, Res As Integer Dt = # 2/2/2019 # End Sub 

Крок 4: У змінній Res обчислимо тиждень дати за допомогою функції DatePart.

Код:

 Sub Sample1 () Dim Dt As Date, Res As Integer Dt = # 2/2/2019 # Res = DatePart ("ww", Dt) Кінець Sub 

Крок 5: Відображення значення, збереженого у змінній, за допомогою функції msgbox.

Код:

 Sub Sample1 () Dim Dt As Date, Res As Integer Dt = # 2/2/2019 # Res = DatePart ("ww", Dt) MsgBox Res End Sub 

Крок 6: Запустіть наведений вище код, натиснувши клавішу F5 або натиснувши кнопку Відтворити, щоб отримати наступний результат.

Дата, яку ми надали як вхід, припадає на п'ятий тиждень року.

Excel VBA DatePart - приклад №3

Спробуємо якийсь приклад із реального життя. У аркуші 1 у комірці A1 я використав формулу = Now (), щоб отримати поточну дату та час, і ми дізнаємося частину дати для цієї комірки.

Для використання функції DatePart в Excel VBA виконайте наведені нижче дії:

Крок 1: У цьому ж модулі визначте інший підпроцедур наступним чином.

Код:

 Sub Sample2 () Кінець Sub 

Крок 2: Визначте дві змінні як Дату, а іншу - як ціле число.

Код:

 Sub Sample2 () Dim Dt As Date, Res As Integer End Sub 

Крок 3: У змінному Dt зберігання значення комірки A1 є наступним.

Код:

 Sub Sample2 () Dim Dt As Date, Res As Integer Dt = Діапазон ("A1"). Value End Sub 

Крок 4: Тепер у змінній res давайте обчислимо частину тижня для введення, використовуючи функцію DatePart.

Код:

 Sub Sample2 () Dim Dt As Date, Res As Integer Dt = Діапазон ("A1"). Value Res = DatePart ("ww", Dt) End Sub 

Крок 5: Відображення значення, збереженого у змінній, за допомогою функції Msgbox.

Код:

 Sub Sample2 () Dim Dt As Date, Res As Integer Dt = Діапазон ("A1"). Value Res = DatePart ("ww", Dt) MsgBox Res End Sub 

Крок 6: Запустіть наведений вище код, натиснувши клавішу F5 або натиснувши кнопку Відтворити, щоб отримати наступний результат.

Поточна дата - 25 липня, що становить 30 тиждень 2019 року.

Що потрібно пам’ятати

  • Це функція дати, але повертає ціле значення.
  • Перші два аргументи є обов'язковими, тоді як два інші аргументи необов’язкові.
  • У VBA є свої аргументи за замовчуванням, якщо ми не надаємо останні два аргументи функції DatePart.
  • Ця функція є функцією VBA, а не функцією робочого аркуша.

Рекомендовані статті

Це посібник щодо VBA DatePart. Тут ми обговорюємо, як використовувати функцію DatePart в Excel, використовуючи код VBA разом з кількома практичними прикладами та шаблоном Excel, який можна завантажити. Ви також можете ознайомитися з іншими запропонованими нами статтями -

  1. VBA DateAdd
  2. Сьогодні формула в Excel
  3. Функція дати VBA
  4. ЗАРАЗ Excel Функція
  5. Як використовувати формат дати VBA в Excel?
  6. Де написати код у VBA?

Категорія: