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