Jak znaleźć pierwszy dzień miesiąca za pomocą vba (z przykładem)
Możesz użyć funkcji DateSerial() w VBA z wartością 1 jako argumentem dnia, aby znaleźć pierwszy dzień miesiąca dla daty w określonej komórce.
Na przykład możesz użyć następującej składni, aby znaleźć pierwszy 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)
Na przykład, jeśli komórka A1 zawiera 1/5/2023 , komórka B1 zwróci 1/1/2023 .
Poniższy przykład pokazuje, jak w praktyce wykorzystać tę funkcję.
Przykład: Użyj VBA, aby znaleźć pierwszy dzień miesiąca
Załóżmy, że mamy w Excelu następujący zbiór danych, który zawiera informacje o sprzedaży zrealizowanej w różnych terminach w firmie:
Załóżmy, że chcemy znaleźć pierwszy 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)
Next i
End Sub
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Każda data w kolumnie C reprezentuje pierwszy dzień miesiąca odpowiadającej dacie 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