Foreversoft.ru

IT Справочник
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Vba excel функции даты

Урок 15 по VBA — функции работы с датой и временем

И так, в этой по своей природе унылой публикации я кратко рассмотрю vba функции даты и времени, которые позволяют получить или установить параметры даты и времени, задать таймер выполнения заданного блока кода или сценария в целом. Также в конце статьи будет затронута функция vba языка format. Которая отвечает за форматирование данных.

Функции VBA даты и времени

Date () – позволяет получить значение текущей даты, установленной в системе.

Time () – вернет установленное в системе время

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

DateAdd (интервал, число, дата) – позволяет прибавить к заданной дате (параметр “дата”) указанное количество лет, кварталов, месяцев или секунд. На выходе мы получим следующее значение: дата + (число * интервал).

DateDiff (интервал, дата, дата2) – позволяет получить разницу между заданными датами, например. В годах, месяцах и так далее, разница определяется параметром “интервал”.

DatePart (интервал, дата) – позволяет получить заданную часть даты, например, только значение года, месяца или дня недели. Результат возврата регулируется параметром “интервал”.

DateSerial (год, месяц, день) – данная функция vba принимает три числовые значения, по которым возвращается дата.

DateValue (строка) – аналог предыдущей функции, но тут в качестве параметра мы передаем не числа. А строковое значение, на основе которого будет возвращаться дата, vba работа с датами.

Day (дата) – позволяет получить значение текущего дня (если отсутствует параметр “дата”) или для заданной даты.

Year (дата) – позволяет получить значение текущего года (если отсутствует параметр “дата”) или для заданной даты.

Month (дата) – позволяет получить значение текущего месяца (если отсутствует параметр “дата”) или для заданной даты.

Weekday (дата) – позволяет получить значение текущей недели (если отсутствует параметр “дата”) или для заданной даты.

Hour (время) – позволяет получить текущее значение часов (если отсутствует параметр “время”) или для заданного времени, vba дата и время.

Minute (время) – позволяет получить текущее значение минут (если отсутствует параметр “время”) или для заданного времени.

Second (время) – позволяет получить текущее значение секунд (если отсутствует параметр “время”) или для заданного времени.

Timer () – удобная функция для определения промежутка времени, ушедшего на выполнение заданного блока кода. Сама функция возвращает целое количество секунд, которые прошли начиная с полуночи.

TimeSerial (часы, минуты, секунды) – позволяет получить время, заданное тремя параметрами

TimeValue (строка) – работает аналогично предыдущей функции, но для получения времени, передается не целое значение, а строковое.

MonthName (числовое значение) – VBA функция позволяет получить название месяца, в качестве параметра указываем номер месяца.

WeekDay (дата) — задает возвращает имя месяца словами по его номеру. Возвращаемое значение зависит от региональных настроек. Если они русские, то вернется русское название месяца.

Помимо указанных выше vba функций даты и времени, можно использовать и такие вариации:

Date (дата) – позволяет задать системную дату

Time (время) – позволяет задать системное время.

В приведенных выше функциях даты и времени vba языка используется параметр “интервал”, который может принимать следующие значения:

VBA функции форматирование данных

Для форматирования данных в языке VBA используется функция Format , которая позволяет сформировать данные любого встроенного типа, используя заданный образец. Общий синтаксис функции format:

Format (Выражение, [“формат”, [первый день недели, [первая неделя года]]]) – тут параметр “выражение” является любым допустимым значением. Формат – необязательный параметр, который задает формат данных, должен заключаться в кавычки. Остальные два параметра также являются необязательными, и задают день недели, который нужно считать первым, и первую неделю года.

Параметр формат может принимать следующие значения:

  • General Number – числовое значение без выделения разрядов тысяч, например, 12150,2003
  • Currency – денежный формат, выделяются тысячные разряды и два знака после запятой, например, 255,33р.
  • Fixed – числовое значение без выделения разрядов тысяч и двумя знаками после запятой, например, 22439,12.
  • Standart – числовое значение, которое умножается на 100, при этом, остаются два знака после запятой и символ процента, например, 55,63%.
  • Scientific – числовой формат для научных вычисление, например, 5,23Е+03
  • Yes/No – данный параметр определяет, что функция вернет “Да” если форматированное выражение содержит строку Нет, или ненулевое значение и “Нет” в противном случае.
  • True/False – аналог предыдущего параметра, но для строк “Истина” и “Ложь”.
  • On/Off – для строк вида “Вкл” и “Выкл”.
  • General Date – форматирование выражения в соответствии с установленными в системе стандартами даты и времени, например, 10.11.02 12:25:50
  • Long Date – вывод полного формата даты, в зависимости от установок в системе, например, 10 октября 2013 г, vba функции даты.
  • Medium Date – средний формат дат, например, 10-Окт-13.
  • Short Date – короткий вывод формата даты, например, 10.10.13.
  • Long Time – вывод в формате времени (часы, минуты, секунды), например, 12:20:40.
  • Medium Time – 12 часовой формат времени (часы, минуты), например, 05:30.
  • Short Time — 24 часовой формат времени (часы, минуты), например, 17:30.
Читать еще:  Точность вычислений в excel

Спасибо за внимание. Автор блога Владимир Баталий

Функция DateAdd

Возвращает значение типа Variant ( Date), содержащее результат прибавления к дате указанного интервала времени.

DateAdd ( интервал, число, дата )

Функция DateAdd имеет следующие аргументы:

Обязательный аргумент. Строковое выражение, обозначающее интервал времени, который требуется прибавить.

Обязательный аргумент. Числовое выражение, обозначающее количество интервалов, которые требуется прибавить. Может принимать положительное (для получения будущих дат) или отрицательное (для получения прошедших дат) значение.

Обязательный аргумент. Значение типа Variant ( Date) или литерал, представляющие дату, к которой добавляется интервал.

Совет: В Access 2010 построитель выражений включает функцию IntelliSense, которая указывает требуемые аргументы.

Аргумент интервалАргумент имеет следующие значения:

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

Чтобы добавить дни к дате, используйте значения «День года» («y»), «День» («d») или «День недели» («w»).

Функция DateAdd всегда возвращает допустимую дату. В следующем примере к 31 января прибавляется 1 месяц:

В данном случае DateAdd возвращает 28-фев-95, а не 31-фев-95. Если дата имеет значение 31-янв-96, возвращаемым значением будет 29-фев-96, поскольку 1996 год — високосный.

Если вычисляемая дата предшествует 100 году (т. е. вычитается больше лет, чем указано в аргументе дата), возникает ошибка.

Если число не является значением типа Long, оно округляется до ближайшего целого числа перед вычислением.

Примечание: Формат возвращаемого значения для функции DateAdd определяется параметрами панели управления, а не форматом, передаваемым в аргументе дата.

Примечание: Если в свойстве Calendar задан григорианский календарь, аргумент дата следует указывать соответствующим образом. Если используется календарь Хиджра, дата должна соответствовать ему. Если значением месяца является название, оно должно соответствовать текущим параметрам свойства Calendar. Чтобы уменьшить вероятность несоответствия названий месяцев текущим параметрам свойства Calendar, вводите числовые значения месяцев (используйте краткий формат даты).

Примеры запросов

Выберите DateAdd («гггг», 1, [Датеофсале]) как Выражение1 из Продуктсалес;

Возвращает результаты, добавляя 1 год к значениям даты в поле «Датеофсале».

Выберите DateAdd («гггг»,-1, [Датеофсале]) как Выражение1 из Продуктсалес;

Возвращает результаты, вычитая 1 год до значений даты в поле «Датеофсале».

Выберите DateAdd («d»; 10 [Датеофсале]) в качестве Невдате от Продуктсалес;

Возвращает результаты в столбце «Невдате», добавив 10 дней к значениям даты в поле «Датеофсале».

Выберите DateAdd («WW»;-1, [Датеофсале]) как Невдате из Продуктсалес;

Возвращает результаты в столбце «Невдате» путем вычитания 1 недели (7 дней) из значений даты поля «Датеофсале».

Пример VBA

Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.

Читать еще:  Excel debug print

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

Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

Функция DateAdd

Возвращает значение типа Variant ( Date), содержащее результат прибавления к дате указанного интервала времени.

DateAdd ( интервал, число, дата )

Функция DateAdd имеет следующие аргументы:

Обязательный аргумент. Строковое выражение, обозначающее интервал времени, который требуется прибавить.

Обязательный аргумент. Числовое выражение, обозначающее количество интервалов, которые требуется прибавить. Может принимать положительное (для получения будущих дат) или отрицательное (для получения прошедших дат) значение.

Обязательный аргумент. Значение типа Variant ( Date) или литерал, представляющие дату, к которой добавляется интервал.

Совет: В Access 2010 построитель выражений включает функцию IntelliSense, которая указывает требуемые аргументы.

Аргумент интервалАргумент имеет следующие значения:

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

Чтобы добавить дни к дате, используйте значения «День года» («y»), «День» («d») или «День недели» («w»).

Функция DateAdd всегда возвращает допустимую дату. В следующем примере к 31 января прибавляется 1 месяц:

В данном случае DateAdd возвращает 28-фев-95, а не 31-фев-95. Если дата имеет значение 31-янв-96, возвращаемым значением будет 29-фев-96, поскольку 1996 год — високосный.

Если вычисляемая дата предшествует 100 году (т. е. вычитается больше лет, чем указано в аргументе дата), возникает ошибка.

Если число не является значением типа Long, оно округляется до ближайшего целого числа перед вычислением.

Примечание: Формат возвращаемого значения для функции DateAdd определяется параметрами панели управления, а не форматом, передаваемым в аргументе дата.

Примечание: Если в свойстве Calendar задан григорианский календарь, аргумент дата следует указывать соответствующим образом. Если используется календарь Хиджра, дата должна соответствовать ему. Если значением месяца является название, оно должно соответствовать текущим параметрам свойства Calendar. Чтобы уменьшить вероятность несоответствия названий месяцев текущим параметрам свойства Calendar, вводите числовые значения месяцев (используйте краткий формат даты).

Примеры запросов

Выберите DateAdd («гггг», 1, [Датеофсале]) как Выражение1 из Продуктсалес;

Возвращает результаты, добавляя 1 год к значениям даты в поле «Датеофсале».

Выберите DateAdd («гггг»,-1, [Датеофсале]) как Выражение1 из Продуктсалес;

Возвращает результаты, вычитая 1 год до значений даты в поле «Датеофсале».

Выберите DateAdd («d»; 10 [Датеофсале]) в качестве Невдате от Продуктсалес;

Возвращает результаты в столбце «Невдате», добавив 10 дней к значениям даты в поле «Датеофсале».

Выберите DateAdd («WW»;-1, [Датеофсале]) как Невдате из Продуктсалес;

Возвращает результаты в столбце «Невдате» путем вычитания 1 недели (7 дней) из значений даты поля «Датеофсале».

Пример VBA

Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.

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

Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

Функции для работы с датой и временем

Функции для работы с числовыми значениями

Функций для работы с числовыми значениями в VBA очень много. Используются они реже, чем строковые функции, но во многих ситуациях без них не обойтись. Еще один момент: если вы программируете на языке VBA, то, скорее всего, на вашем компьютере установлен Microsoft Office с Excel. В Excel есть свой собственный мощный набор встроенных функций для работы с числовыми значениями, которые вполне доступны из VBA. Если вы в моем списке не найдете ничего подходящего для вашей ситуации, возможно имеет смысл воспользоваться функциями Excel.

Читать еще:  Ограничение строк в excel 2020

Кроме того, если в окне Надстройки(меню Сервис | Надстройки) установить флажок напротив строки Пакет анализа, в Excel будет добавлен дополнительный набор аналитических научных и финансовых функций, а если в том же окне установить флажок напротив Analysis ToolPak — VBA, то эти функции станут доступны из VBA (только внутри Excel, в котором установлена эта надстройка).

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

— Abs() — эта функция возвращает абсолютное значение переданного ей числа (то же число, но без знака). Например, Abs(3) и Abs(−3) вернут одно и то же значение 3. Обычно используется тогда, когда нам нужно определить разницу между двумя числами, но при этом мы не знаем, какое число — первое или второе — больше. Результат вычитания может быть и положительным и отрицательным. Чтобы он был только положительным, используется эта функция.

— Int(), Fix() и Round() — позволяют по-разному округлять числа. Int() возвращает ближайшее меньшее целое, Fix() отбрасывает дробную часть, Round() округляет до указанного количества знаков после запятой. При этом Round() работает не совсем правильно, в чем легко убедиться:

MsgBox Round(2.505, 2)

Поэтому на практике для округления лучше использовать Format():

MsgBox Format(2.505, «#,##0.00»)

— Rnd() и команда Randomize — используются для получения случайных значений (очень удобно, например, при генерации имен файлов). Обычный синтаксис при применении Rnd() выглядит так:

случайное_число = Int(минимум + (Rnd() * максимум))

MsgBox (Int(1 + (Rnd() * 100)))

Однако перед вызовом функции Rnd() необходимо выполнить команду Randomize для инициализации генератора случайных чисел.

— Sgn() — позволяет вернуть информацию о знаке числа. Возвращает 1, если число положительное, −1, если отрицательное, и 0, если проверяемое число равно 0.

Без функций даты и времени обычно обойтись очень сложно. Самые важные функции VBA для работы с датой/временем приведены далее.

— Date(), Time(), Now() — возвращают соответственно текущую системную дату, текущее системное время и дату и время одновременно. Установить их можно при помощи одноименного соответствующего оператора, например, так:

— DateAdd() — добавляет к дате указанное количество лет, кварталов, месяцев и так далее до секунд.

— DateDiff() — возвращает разницу между датами (в единицах от лет до секунд).

-DatePart() — очень важная функция, которая возвращает указанную вами часть даты (например, только год, только месяц или только день недели).

— DateSerial() — создает значение даты на основе передаваемых символьных значений. То же самое делает функция DateValue(), но при другом формате принимаемых значений. Аналогичным образом (для времени) работают TimeSerial() и TimeValue().

— Day() (а также Year(), Month(), Weekday(), Hour(), Minute(), Second()) — специализированные заменители функции DatePart(), которые возвращают нужную вам часть даты.

— MonthName() — возвращает имя месяца словами по его номеру. Возвращаемое значение зависит от региональных настроек. Если они русские, то вернется русское название месяца.

— Timer() — возвращает количество секунд, прошедших с полуночи.

Если нужно получить дополнительные возможности работы с датой/временем, то в вашем распоряжении объектная модель Outlook. Например, при помощи ее можно получить информацию о праздниках и рабочих/нерабочих днях большинства стран мира.

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Только сон приблежает студента к концу лекции. А чужой храп его отдаляет. 9274 — | 7852 — или читать все.

Ссылка на основную публикацию
Adblock
detector