Vba: jak sortować wartości alfabetycznie


Do alfabetycznego sortowania wartości w zakresie można zastosować następującą podstawową składnię w VBA:

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

Ten konkretny przykład sortuje wiersze z zakresu A1:B11 na podstawie wartości w kolumnie A alfabetycznie (od A do Z).

Jeśli chcesz posortować wartości w odwrotnej kolejności alfabetycznej (Z do A), 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 wartości alfabetycznie za pomocą VBA

Załóżmy, że mamy w programie Excel następujący zbiór danych zawierający informacje o różnych koszykarzach:

Załóżmy, że chcemy posortować wiersze alfabetycznie według nazwy zespołu.

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

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

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

Wiersze są teraz sortowane alfabetycznie według nazwy drużyny (od A do Z).

Aby posortować wiersze w odwrotnej kolejności alfabetycznej (Z do A), możemy określić Order1:=xlDescending :

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

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

Wiersze są teraz sortowane według nazwy drużyny w odwrotnej kolejności alfabetycznej (Z do A).

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 *