Функция DatePart в VBA | Как вернуть указанную часть даты?

Функция Excel VBA DatePart

DatePart в VBA используется для идентификации части даты для данной даты, предоставленной в качестве аргумента, часть даты может быть либо днями, либо месяцами, либо годами или даже часами, минутами и секундами, синтаксис этой функции очень сильно проясняется и он выглядит следующим образом: Datepart (интервал, дата как аргумент).

Синтаксис

Синтаксис функции DatePart приведен ниже:

  • Интервал: данные, передаваемые в аргументе интервала, имеют строковый тип, что означает, что этот аргумент может содержать любые допустимые значения. Интервал может быть год, месяц, квартал, день, неделя, час, минута, секунда.
  • Дата: значение даты, которое необходимо оценить.
  • firstdayofweek: необязательный параметр. Это описывает первый день недели, это можно даже игнорировать. Если этот параметр игнорируется, воскресенье автоматически считается первым днем ​​недели. Если вы хотите изменить это, можно использовать этот параметр. Этот аргумент может состоять из vbUseSystem 0.

Используйте настройку NLS API

vbSunday (по умолчанию), vbMonday, vbTuesday, vbWednesday, vbThursday vbFriday, vbSaturday.
  • firstweekofyear: Как и верхний параметр, это также необязательный параметр. Это описывает первую неделю года. Этот параметр также можно игнорировать. Если этот параметр игнорируется, считается, что 1 января - первая неделя года. Если вы хотите изменить это, можно использовать этот параметр.

    Этот аргумент может состоять из следующих значений.

    vbUseSystem, vbFirstJan1, vbFirstFourDays, vbFirstFullWeek.

После задания всех параметров Datepart () вернет числовое значение, такое как целая дата, год, месяц или квартал и т. Д. Следовательно, типом возвращаемого значения этой функции будет числовое значение.

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

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

Пример # 1

Первый пример - показать полную дату и квартал этого месяца.

Для этого нам нужно написать код на Visual Basic для этой вкладки «Перейти к разработчику», затем щелкнуть Visual Basic, после чего откроется окно.

В этом окне напишите код, как показано ниже.

Код:

 Sub date_Datepart () Dim mydate As Variant mydate = # 12/25/2019 # MsgBox mydate MsgBox DatePart ("q", mydate) 'отображает четверть End Sub 

В этом примере мы использовали функцию Datepart для отображения даты и некоторой части даты, которая является четвертью даты. Это показывает, в каком квартале года наступает дата.

Если мы отлаживаем код, дата будет отображаться как полная дата в первый раз, когда код выполняет «Msgbox mydate», потому что случайная дата назначается переменной «mydate».

Затем мы показываем, к какому кварталу года относится эта дата.

Когда вы запускаете код вручную или с помощью сочетания клавиш F5, дата будет отображаться, как показано, после нажатия на ОК. Затем будет отображаться четверть даты, как показано на снимке экрана ниже.

Аналогично, квартал, может отображаться только дата, месяц или год.

Пример # 2

В этом примере я введу дату вручную во время выполнения.

Код:

Sub date1_datePart () Dim TodayDate As Date 'Объявить переменные. Dim Msg TodayDate = InputBox ("Введите дату:") Msg = "Quarter:" & DatePart ("q", TodayDate) MsgBox Msg End Sub

В этом примере мы пытаемся получить дату вручную во время выполнения. Код «TodayDate = InputBox (« Введите дату: »)» в этой строке указывает, что дату можно ввести вручную,

После ввода даты вручную отображается квартал даты в окне сообщения. Это можно увидеть на скриншоте ниже.

Поскольку июньский месяц приходится на 2-й квартал, здесь отображается 2-й квартал, как показано на скриншоте выше.

Пример # 3

В этом примере все значения будут заполнены в ячейках.

Код:

 Private Sub Workbook_Open() Dim DummyDate As Date DummyDate = ActiveSheet.Cells(2, 2) ActiveSheet.Cells(2, 2).Value = Day(DummyDate) ActiveSheet.Cells(3, 2).Value = Hour(DummyDate) ActiveSheet.Cells(4, 2).Value = Minute(DummyDate) ActiveSheet.Cells(5, 2).Value = Month(DummyDate) ActiveSheet.Cells(6, 2).Value = Weekday(DummyDate) End Sub 

The dates are filled in the cells in the excel sheet, for that the code is written as Active Sheet.cells. By this code the date which is present may be year month or date can be inserted into the given cells.

For example, in the above screenshot,

The day is to be inserted in the cells ( 2, 2) of the excel sheet. Hence the code is written as “ ActiveSheet.Cells(2, 2).Value = Day(DummyDate) “ .

Run the code using the F5 key or manually and the result would be as shown below.

It is by default taking today date and it is displaying as 30 in (2,6) cell.

Likewise for all the other data also it can be filled.

Usage of DatePart Function

  • DatePart function can be used to display the part of the date as the name indicates i.e., if only day or month or year of the date needs to be displayed then this function can be used.
  • This function also separates date, month and a year from a particular date.
  • By using this function the date is not only separated we can also get the quarter, day, hour, minute and a second.

Things to Remember

  • This function can only be used as a VBA Function. In normal excel, this cannot be used.
  • The dates which are given as a value in this function can be given in any format such as mm-dd-yyyy format or DD-MM-YYYY format etc.
  • This function will separate all the values separately such as date, month, year or time also an hour, minute, seconds also.
  • This is organized under Date and Time Functions in VBA of Microsoft Excel.