Jak sortować według daty w vba (z przykładami)


Aby sortować wiersze według daty, możesz użyć następującej podstawowej składni w VBA:

 Sub SortByDate()
Range(" A1:C10 ").Sort Key1:=Range(" A1 "), Order1:=xlAscending, Header:=xlYes
End Sub

W tym konkretnym przykładzie wiersze z zakresu A1:C10 są sortowane na podstawie dat w kolumnie A, od najstarszego do najnowszego.

Jeśli chcesz posortować wiersze według daty od najnowszego do najstarszego, możesz zamiast tego określić Order1:=xlDescending .

Zauważ, że Header:=xlYes określa, że pierwsza linia powinna być traktowana jako linia nagłówka.

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: Sortuj według daty za pomocą VBA

Załóżmy, że mamy w Excelu następujący zestaw danych, który zawiera informacje o sprzedaży i zwrotach w sklepie w różnych terminach:

Załóżmy, że chcemy posortować wiersze według daty, od najstarszych do najnowszych.

W tym celu możemy utworzyć następujące makro:

 Sub SortByDate()
Range(" A1:C10 ").Sort Key1:=Range(" A1 "), Order1:=xlAscending, Header:=xlYes
End Sub

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Należy pamiętać, że wiersze są teraz sortowane według daty, od najstarszej do najnowszej.

Aby posortować wiersze według daty od najnowszego do najstarszego, możemy określić Order1:=xlDescending :

 Sub SortByDate()
Range(" A1:C10 ").Sort Key1:=Range(" A1 "), Order1:=xlDescending, Header:=xlYes
End Sub

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Zwróć uwagę, że wiersze są teraz sortowane według daty, od najnowszego do najstarszego.

Uwaga nr 1 : W tym przykładzie posortowaliśmy według jednej kolumny. Można jednak określić więcej kluczy do sortowania według wielu kolumn.

Uwaga #2 : Pełną dokumentację metody sortowania VBA znajdziesz tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:

VBA: Jak sortować arkusz według wielu kolumn
VBA: Jak policzyć liczbę wierszy w zakresie
VBA: jak filtrować kolumnę

Dodaj komentarz

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