Як знайти останній день місяця за допомогою 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
Коли ми запускаємо цей макрос, ми отримуємо такий результат:
Кожна з дат у стовпчику C означає останній день місяця для відповідної дати у стовпчику A.
Примітка №1: у коді ми використовували For i = 2–11, оскільки клітинки A2–A11 містили дати, які нас цікавили. Не соромтеся змінювати цей діапазон залежно від діапазону комірок, який ви хочете використовувати.
Примітка №2 : ви можете знайти повну документацію функції DateSerial() у VBA тут .
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання за допомогою VBA:
Як сортувати за датою у VBA
Як додати if між двома датами у VBA
Як рахувати більше дати у VBA