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:
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