VBA DateSerial

Функция Excel VBA DateSerial

Функция DateSerial в VBA возвращает дату из значений, предоставленных пользователями. Нам нужно указать, какой год, какой день и какой месяц. Результат будет основан на формате даты вашей системы.

Ниже приведен синтаксис ПОСЛЕДОВАТЕЛЬНАЯ функция.

DateSerial Синтаксис

#1 год: нам нужно ввести целое число в качестве года? Предоставляя целые числа, мы должны помнить о следующих вещах.

  • Мы можем поставить числа от 0 до 9999.
  • Одно- и двузначные числа от 0 до 99 будут обрабатываться с 1930 по 2029 год.
  • Отрицательное целое число будет вычтено из 2000 года. Например, если вы укажете -1, результатом будет 1999 год, потому что 2000 – 1 = 1999.

#2 месяца: нам нужно ввести целое число в качестве месяца? При вводе этого числа мы должны помнить о следующих вещах.

  • Мы можем предоставить номера только от 1 до 12.
  • Если предоставленное целочисленное значение равно 0, то это будет представлять месяц «декабрь» предыдущего года.
  • Если предоставленное целочисленное значение равно -1, то это будет представлять месяц «ноябрь» предыдущего года. Таким образом, когда отрицательное значение увеличивается, оно будет представлять месяц назад в году.
  • Если указанное число больше 12, т. е. если число равно 13, то это будет представлять месяц «январь» следующего года. Если число равно 14, то оно будет считаться месяцем «февраль» следующего года.

#3 дня: нам нужно ввести целое число, как что сегодня? При вводе этого числа мы должны помнить о следующих вещах.

  • Мы можем ввести целые числа от 1 до 31 для дней текущего месяца.
  • Если число равно 0, оно будет представлять последний день предыдущего месяца.
  • Если число равно -1, оно будет представлять второй последний день предыдущего месяца.
  • Если вы укажете последний день этого месяца +1, то это будет представлять первый день следующего месяца. Например, если последний день августа — 31, и если вы укажете день как 31 + 1, то он будет представлять первый день сентября.

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

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

Пример №1

Чтобы использовать функцию DATESERIAL, начните писать код макроса.

Шаг 1: Запустите подпроцедуру

Сначала создайте подпроцедуру VBA, как показано ниже.

Пример VBA DateSerial 1
Шаг 2: Объявите переменную

Теперь объявите переменную как DATE.

Пример VBA DateSerial 1-1
Шаг 3: Назначьте функцию DateSerial этой переменной.

Теперь для этой переменной назначьте функцию DATESERIAL.

Пример VBA DateSerial 1-2
Шаг 4: Теперь введите значения года, месяца и дня в функцию DateSerial.

Для запаса ГОД 2019, для запаса МЕСЯЦ 08 и для запаса ДЕНЬ 05.

Пример VBA DateSerial 1-3
Шаг 5: Показать результат в окне сообщения

Теперь покажите результат переменной «Моя дата» в окне сообщения.

Код:

Option Explicit

Sub DateSerial_Example1()

  Dim Mydate As Date

  Mydate = DateSerial(2019, 8, 5)

  MsgBox Mydate

End Sub
Пример VBA DateSerial 1-4
Шаг 6: Запустите код

Теперь запустите этот код, чтобы увидеть дату ниже.

Пример 1-5

В результате написано «05.08.2019». В моей системе формат даты имеет вид «ММ-ДД-ГГГГ», поэтому результат также в том же формате.

Мы также можем изменить формат даты, используя функцию FORMAT в VBA. Примените функцию FORMAT, как показано ниже.

Код:

Option Explicit

Sub DateSerial_Example1()

  Dim Mydate As Date

  Mydate = DateSerial(2019, 8, 5)

  MsgBox Format(Mydate, "DD-MMM-YYYY")

End Sub

Это применит формат «ДД-МММ-ГГГГ», и результат будет следующим.

Пример 1-6

Пример #2

Мы также можем объявить переменные и передать значения этим переменным. Например, посмотрите на приведенный ниже код.

Код:

Sub DateSerial_Example2()

  Dim Mydate As Date

  Dim MyYear As Integer
  Dim MyMonth As Integer
  Dim MyDay As Integer

  MyYear = 2019
  MyMonth = 8
  MyDay = 5

  Mydate = DateSerial(MyYear, MyMonth, MyDay)
  MsgBox Format(Mydate, "DD-MMM-YYYY")

End Sub

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

Вот как мы можем использовать переменные в VBA для хранения значений.

Пример №3

Теперь поэкспериментируем с годом. Я назначу значение года как 1 и посмотрю результат.

Пример 3

Однозначные и двузначные числа в YEAR представляют год с 1930 по 2029 год. Таким образом, 01 означает 2001 год, 02 означает 2002 год и так далее.

Теперь давайте изменим номер месяца на 0 и посмотрим на результат.

Пример 3-1

Посмотрите на код здесь: Год — 2019, а месяц — 0. Но посмотрите на результат: 05 декабря 2019, тогда как указанный год — 2019, значит 2018, т. е. предыдущий год.

Это связано с тем, что, поскольку мы указали месяц как 0, функция DATESERIAL переводит месяц в последний месяц предыдущего года и соответственно меняет год.

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

То, что нужно запомнить

  • Вам нужно знать, какое число представляет какой год, месяц и детский сад. Внимательно прочитайте объяснение синтаксиса, чтобы понять.
  • Результат будет основан на формате даты вашей системы. Если вы хотите изменить результат, вам нужно применить функцию FORMAT, указав формат даты в соответствии с вашим удобством.

УЗНАТЬ БОЛЬШЕ >>

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *