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


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

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

 dateVal = DateValue(Range(" A1 "))

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

Например, если ячейка A1 содержит 05.01.2023 , ячейка B1 вернет 01.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)
Next i

End Sub

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

VBA найти первый день месяца

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

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

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

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

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

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

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

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