Vba: jak uzyskać miesiąc i rok od daty
Możesz użyć właściwości NumberFormat w VBA, aby uzyskać miesiąc i rok z daty.
Oto typowy sposób wykorzystania tej właściwości w praktyce:
SubGetMonthYear ()
Dim i As Integer
For i = 2 To 11
Range(" C " & i).Value = DateValue(Range(" A " & i))
Range(" C " & i).NumberFormat = " mm/yyyy "
Next i
End Sub
To konkretne makro wyszukuje miesiąc i rok dla każdej daty w zakresie A2:A11 i wyświetla te wartości w odpowiednich komórkach w zakresie C2:C11 .
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: Dodaj dni do tego dnia w VBA
Załóżmy, że mamy w Excelu następujący zestaw danych, który zawiera informacje o sprzedaży zrealizowanej przez firmę w różnych terminach:
Załóżmy, że chcemy uzyskać miesiąc i rok dla każdej komórki w kolumnie daty.
W tym celu możemy utworzyć następujące makro:
SubGetMonthYear ()
Dim i As Integer
For i = 2 To 11
Range(" C " & i).Value = DateValue(Range(" A " & i))
Range(" C " & i).NumberFormat = " mm/yyyy "
Next i
End Sub
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Należy zauważyć, że kolumna C zawiera miesiąc i rok każdej odpowiedniej daty w kolumnie A.
Należy pamiętać, że użyliśmy właściwości NumberFormat do formatowania dat za pomocą dwóch cyfr w przypadku miesięcy i czterech cyfr w przypadku lat.
Gdybyśmy chcieli, moglibyśmy wybrać wyświetlanie tych wartości w innym formacie.
Na przykład moglibyśmy użyć następującej składni, aby wyświetlić miesiąc za pomocą jednej cyfry (jeśli miesiąc zawiera tylko jedną cyfrę), a rok za pomocą dwóch cyfr:
SubGetMonthYear ()
Dim i As Integer
For i = 2 To 11
Range(" C " & i).Value = DateValue(Range(" A " & i))
Range(" C " & i).NumberFormat = " m/yy "
Next i
End Sub
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Możesz swobodnie bawić się różnymi opcjami formatowania, aby wyświetlać wartości miesiąca i roku według własnego uznania.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:
Jak porównać daty w VBA
Jak przekonwertować ciąg znaków na bieżąco w VBA
Jak obliczyć dni między dwiema datami w VBA