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:

VBA znajduje pierwszy dzień miesiąca

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

Dodaj komentarz

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