Jak znaleźć ostatni dzień miesiąca za pomocą vba (z przykładem)


Możesz użyć funkcji DateSerial() w VBA z wartością 0 jako argumentem dzień, aby znaleźć ostatni dzień miesiąca dla daty w określonej komórce.

Na przykład możesz użyć następującej składni, aby znaleźć ostatni dzień miesiąca dla daty w komórce A1 i zwrócić tę datę w komórce B1 :

 dateVal = DateValue(Range(" A1 "))

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

Na przykład, jeśli komórka A1 zawiera 1/5/2023 , komórka B1 zwróci 1/31/2023 .

Poniższy przykład pokazuje, jak w praktyce wykorzystać tę funkcję.

Przykład: użycie VBA do znalezienia ostatniego dnia miesiąca

Załóżmy, że mamy w Excelu następujący zestaw danych, który zawiera informacje o sprzedaży zrealizowanej w różnych terminach w firmie:

Załóżmy, że chcemy znaleźć ostatni dzień miesiąca dla każdej daty w kolumnie A i zwrócić datę w odpowiedniej komórce w kolumnie C.

W tym celu możemy użyć następującej składni:

 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

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

VBA znajduje ostatni dzień miesiąca

Każda data w kolumnie C reprezentuje ostatni dzień miesiąca dla odpowiedniej daty w kolumnie A.

Uwaga nr 1: W kodzie użyliśmy For i = 2 do 11 , ponieważ komórki od A2 do A11 zawierały daty, które nas interesowały. Możesz zmienić ten zakres w zależności od zakresu komórek, których chcesz użyć.

Uwaga nr 2 : Pełną dokumentację funkcji DateSerial() w VBA znajdziesz tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania przy użyciu języka VBA:

Jak sortować według daty w VBA
Jak dodać if między dwiema datami w VBA
Jak liczyć większą niż datę w VBA

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *