Как найти последний день месяца с помощью vba (с примером)


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

Например, вы можете использовать следующий синтаксис, чтобы найти последний день месяца по дате в ячейке A1 и вернуть эту дату в ячейку B1 :

 dateVal = DateValue(Range(" A1 "))

Range(" B1 ").Value = DateSerial(Year(dateVal), Month(dateVal)+1, 0)

Например, если ячейка A1 содержит дату 05.01.2023 , ячейка B1 вернет 31.01.2023 .

В следующем примере показано, как использовать эту функцию на практике.

Пример: использование VBA для поиска последнего дня месяца

Допустим, у нас есть следующий набор данных в Excel, содержащий информацию о продажах, совершенных в разные даты в компании:

Предположим, мы хотим найти последний день месяца для каждой даты в столбце A и вернуть дату в соответствующую ячейку в столбце C.

Для этого мы можем использовать следующий синтаксис:

 SubFirstDayOfMonth ()

Dim i As Integer

For i = 2 To 11
    dateVal = DateValue(Range(" A " & i))
    Range(" C " & i).Value = DateSerial(Year(dateVal), Month(dateVal)+1, 0)
Next i

End Sub

Когда мы запускаем этот макрос, мы получаем следующий вывод:

VBA найти последний день месяца

Каждая из дат в столбце C представляет собой последний день месяца для соответствующей даты в столбце A.

Примечание № 1. В коде мы использовали For i = от 2 до 11, поскольку ячейки от A2 до A11 содержали интересующие нас даты. Не стесняйтесь менять этот диапазон в зависимости от диапазона ячеек, который вы хотите использовать.

Примечание №2 . Полную документацию функции DateSerial() в VBA можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи с помощью VBA:

Как сортировать по дате в VBA
Как добавить, если между двумя датами в VBA
Как посчитать больше даты в VBA

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

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