Як знайти останній день місяця за допомогою 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
Як додати if між двома датами у VBA
Як рахувати більше дати у VBA

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *