При программировании макросов Excel следует знать, что даты хранятся внутри переменных в виде серийных номеров. Серийный номер представляет собой количество дней, прошедших с начальной «базовой даты», а именно с 1 января 100 г. Это означает, что при желании вы можете выполнять математические вычисления с серийными номерами. Вы можете, например, найти количество дней между двумя датами, просто вычитая даты друг из друга.

Если вы хотите улучшить расчеты даты, вы можете использовать функцию DateDiff. Эта функция позволяет, например, определять количество недель или месяцев между двумя датами. Чтобы использовать функцию для поиска такого типа информации, вы должны сделать следующее:

iNumWeeks = DateDiff("ww", dFirstDate, dSecondDate)

iNumMonths = DateDiff("m", dFirstDate, dSecondDate)

Первая строка определяет количество недель между двумя датами, а вторая определяет количество месяцев между ними.

Помните, что функция DateDiff — это функция макроса (VBA), а не функция рабочего листа. Excel обрабатывает диапазон дат на листах, которые начинаются с 1 января 1900. Однако в VBA даты могут начинаться (как уже отмечалось) в 100 году. Это означает, что макросы могут обрабатывать гораздо больший диапазон дат, включая даты до тем, которые изначально обрабатываются Excel.

_Примечание: _

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

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (9046) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Determining_Differences_Between_Dates [Определение различий между датами].