Excel VBA DatePart

Предположим, у нас есть даты в наших данных, и мы не знаем, какая это неделя или какая часть месяца. Есть разные способы узнать это. В Excel есть несколько сложных формул, которые нам нужно выполнить, чтобы найти это. Например, если существует дата, 02 февраля 2019 года, вычисление для определения квартала для этой даты в Excel является сложным. Тем не менее, VBA предоставляет нам очень удобную функцию под названием DatePart, которая выполняет такие вычисления для нас.

Я объяснил выше, почему мы используем функцию DatePart в VBA. Эта функция используется для определения части даты, будь то день, месяц, неделя или даже часы или секунды. Эта функция возвращает целое число в качестве вывода. Чтобы понять больше об этой функции, давайте сначала подробно рассмотрим синтаксис этой функции.

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

Давайте посмотрим на приведенный ниже синтаксис для DatePart в Excel VBA.

Как мы видим, этой функции предоставлено четыре аргумента. Первые два аргумента являются обязательными, а остальные два аргумента являются необязательными. Однако, если мы не предоставим последние два аргумента, VBA будет иметь свои собственные значения по умолчанию.

  • Интервал: этот аргумент предоставляется в виде строки для этой функции. Этот аргумент может быть месяцем, неделей, годом, днем ​​или даже часом или минутами или секундами. Например, для четверти синтаксис будет «q», или для года синтаксис будет «гггг» и так далее.
  • Дата: это входная дата, которую мы предоставляем этой функции, чью часть мы хотим выяснить.
  • FirstDayofWeek: это необязательный аргумент, который мы передаем этой функции. Но если мы не предоставляем функцию firstdayofweek, VBA автоматически рассматривает SUNDAY как первый день недели. Существует другой синтаксис для предоставления этого аргумента, который выглядит следующим образом:

vbUseSystem (этот синтаксис использует NLS API SETTING), vbSunday (это аргумент по умолчанию), vbMonday, vbTuesday, vbWednesday, vbThursday, vbFriday, vbSaturday (остальные все аргументы необязательны для указания)

  • FirstWeekofYear: это также необязательный аргумент для этой функции. Но опять же, если мы не предоставим этот аргумент, VBA автоматически считает первую неделю той, которая является первой с 1 января. Также для этого аргумента существуют разные синтаксисы, они следующие:

vbUseSystem, vbFirstJan1 (это значение по умолчанию), vbFirstFourDays (этот аргумент начинается с первой недели, которая имеет как минимум первые четыре дня в новом году), vbFirstFullWeek (этот аргумент начинается с первой полной недели года).

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

Как использовать функцию DatePart в Excel VBA?

Ниже приведены различные примеры использования функции DatePart в Excel с использованием кода VBA.

Вы можете скачать этот шаблон Excel VBA DatePart здесь - Шаблон Excel VBA DatePart

Excel VBA DatePart - Пример № 1

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

Выполните следующие шаги, чтобы использовать функцию DatePart в Excel VBA:

Шаг 1: На вкладке разработчика в разделе кода нажмите Visual Basic, который приведет нас к VB Editor.

Шаг 2: В редакторе VB вставьте новый модуль в проект VBA, как показано ниже.

Шаг 3: Теперь дважды щелкните по модулю и начните объявлять новую подпроцедуру, как показано ниже.

Код:

 Sub Sample () End Sub 

Шаг 4: Определите три переменные: одну как String и date, которая будет содержать часть даты и дату нашего ввода, а другую как целое число, которое будет хранить наш вывод.

Код:

 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) End 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 () End Sub 

Шаг 2: Определите одну переменную как Integer и одну переменную как Date, как показано ниже.

Код:

 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) End 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 или нажав кнопку Play, чтобы получить следующий результат.

Дата, которую мы указали в качестве входных данных, приходится на пятую неделю года.

Excel VBA DatePart - Пример № 3

Давайте попробуем пример из реальной жизни. На листе 1 в ячейке A1 я использовал формулу = Now (), чтобы получить текущую дату и время, и мы выясним часть даты для этой ячейки.

Выполните следующие шаги, чтобы использовать функцию DatePart в Excel VBA:

Шаг 1: В том же модуле определите другую подпроцедуру следующим образом.

Код:

 Sub Sample2 () End Sub 

Шаг 2: Определите две переменные, одну как Date, а другую как целое число.

Код:

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

Шаг 3: В переменной Dt store значение ячейки A1 выглядит следующим образом.

Код:

 Sub Sample2 () Dim Dt As Date, Res как целое число Dt = Range ("A1"). Значение End Sub 

Шаг 4: Теперь в переменной res давайте вычислим часть недели для ввода с помощью функции DatePart.

Код:

 Sub Sample2 () Dim Dt As Date, Res As Integer Dt = Range ("A1"). Значение Res = DatePart ("ww", Dt) End Sub 

Шаг 5: Показать значение, сохраненное в переменной, используя функцию Msgbox.

Код:

 Sub Sample2 () Dim Dt As Date, Res As Integer Dt = Range ("A1"). Значение Res = DatePart ("ww", Dt) MsgBox Res End Sub 

Шаг 6: Запустите приведенный выше код, нажав клавишу F5 или нажав кнопку Play, чтобы получить следующий результат.

Текущая дата - 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?

Категория: