Vba: jak przekonwertować datę na numer tygodnia
Aby przekonwertować datę na numer tygodnia, możesz użyć następującej podstawowej składni w VBA:
Sub FindWeekNumber()
Dim i As Integer
For i = 2 To 9
Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i))
Next i
End Sub
W tym konkretnym przykładzie zostanie znaleziony numer tygodnia dla każdej daty w zakresie A2:A9 i wyświetli wyniki w zakresie B2:B9 .
Należy pamiętać, że metoda WeekNum języka VBA zakłada, że tygodnie zaczynają się w niedzielę.
Aby określić inny dzień jako początek tygodnia, możesz dodać drugi argument do metody WeekNum :
Sub FindWeekNumber()
Dim i As Integer
For i = 2 To 9
Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i), vbMonday)
Next i
End Sub
Poniższy przykład pokazuje, jak w praktyce wykorzystać metodę WeekNum do konwersji dat na numery tygodni.
Przykład: konwersja daty na numer tygodnia w VBA
Załóżmy, że w Excelu mamy następującą kolumnę z datą:
Załóżmy, że chcemy przekonwertować każdą datę na numer tygodnia i wyświetlić numer tygodnia w kolumnie B.
W tym celu możemy utworzyć następujące makro:
Sub FindWeekNumber()
Dim i As Integer
For i = 2 To 9
Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i))
Next i
End Sub
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Kolumna B wyświetla numer tygodnia dla każdej daty w kolumnie A, zakładając, że tygodnie zaczynają się w niedzielę.
Jeśli chcesz określić inny dzień jako początek tygodnia, na przykład poniedziałek, możesz zastosować następującą składnię:
Sub FindWeekNumber()
Dim i As Integer
For i = 2 To 9
Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i), vbMonday)
Next i
End Sub
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Kolumna B wyświetla teraz numer tygodnia dla każdej daty w kolumnie B, zakładając, że tygodnie zaczynają się w poniedziałek.
Uwaga : Pełną dokumentację metody VBA WeekNum znajdziesz tutaj .
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