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:

VBA konwertuje datę na numer tygodnia

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

Dodaj komentarz

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