Zakres sortowania VBA - Jak sortować zakres w Excel VBA?

Zakres sortowania Excel VBA

Sortowanie zakresu w VBA odbywa się według metody range.sort, jest to właściwość metody range, za pomocą której użytkownik może sortować zakres w kolejności, argumentami tej funkcji są: Key1, Order1, Key2, Type, Order2, Key3 , Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3, wszystkie argumenty tej funkcji są opcjonalne.

W ramach organizowania lub strukturyzowania danych ważne jest, aby je sortować i organizować. Podobna rzecz jest dostępna również w przypadku VBA, więc częstym pytaniem dotyczącym nowych osób uczących się VBA jest to, w jaki sposób możemy skorzystać z tej opcji sortowania w ramach automatyzacji VBA, a ten artykuł szczegółowo przedstawia zakres sortowania VBA.

W programie Excel wszyscy znamy opcję sortowania dostępną w zakładce DANE.

Opcja sortowania w VBA

Aby skorzystać z opcji sortowania, najpierw musimy zdecydować, jaki jest nasz zakres danych i wspomnieć o tym samym zakresie danych za pomocą obiektu RANGE w VBA, a dopiero potem mamy dostęp do opcji „Sort” w VBA. Na przykład załóżmy, że mój zakres danych wynosi od A1 do D10, a następnie możemy podać zakres danych w następujący sposób.

Kod:

Sub Sort_Range_Example () Range ("A1: D10") End Sub

Teraz wstaw kropkę i wybierz metodę „SORTUJ”.

Kod:

Sub Sort_Range_Example () Range ("A1: D10"). Sort End Sub

Poniżej znajduje się składnia metody zakresu SORT. Chociaż składnia ma różne argumenty, nie potrzebujemy ich wszystkich do naszego kodowania VBA, więc potrzebujemy tylko kilku elementów.

(Key1): W zakresie danych, które sortujemy, musimy określić, którą kolumnę mamy sortować. Na przykład w zakresie danych A1: D10, jeśli chcemy posortować dane na podstawie kolumny B, to (Klucz1) będzie Range („B1”) .

(Kolejność1): Wspomniana kolumna w argumencie (Klucz1) powinna być sortowana w jakiej kolejności. Mamy do wyboru dwie opcje: „xlAscending” lub „xlDescending”.

Nagłówek: wspomniany zakres danych zawiera nagłówki lub nie. Jeśli tak, możemy podać „xlYes” lub „xlNo”.

Przykład zakresu sortowania w VBA

Weźmy na przykład zakres sortowania VBA programu Excel, aby lepiej to zrozumieć.

Na przykład spójrz na poniższą strukturę danych.

Mamy dane od A1 do E17, więc najpierw posortujemy dane według kategorii „Krajowe”. Wykonaj poniższe kroki, aby napisać kod do sortowania danych.

Krok 1: Uruchom procedurę makra programu Excel.

Kod:

Sub Sort_Range_Example () End Sub

Krok 2: Najpierw wspomnij o zakresie danych za pomocą obiektu RANGE .

Kod:

Sub Sort_Range_Example () Range ("A1: E17") End Sub

Krok 3: Teraz wybierz metodę „ Sort ” obiektu Range.

Kod:

Sub Sort_Range_Example () Range („A1: E17”). Sort End Sub

Krok 4: Ponieważ sortujemy dane w oparciu o „Krajowe”, nasza kolumna z argumentem Klucz 1 będzie miała wartość Zakres („B1”).

Kod:

Sub Sort_Range_Example () Range („A1: E17”). Sort Key1: = Range („B1”), End Sub

Krok 5: Po wskazaniu wymaganej kolumny musimy wspomnieć, w jakiej kolejności musimy posortować dane, a „Order1” będzie oznaczać „xlAscending” .

Kod:

Sub Sort_Range_Example () Range („A1: E17”). Sort Key1: = Range („B1”), Order1: = xlAscending, End Sub

Krok 6: Nasze dane mają nagłówki, więc nagłówek będzie miał wartość „xlYes”.

Kod:

Sub Sort_Range_Example () Range („A1: E17”). Sort Key1: = Range („B1”), Order1: = xlAscending, Header: = xlYes End Sub

We have mentioned all the elements which are required to sort the data. Execute the code by pressing the F5 function and key and see the result.

Output:

Data has been sorted based on Country names in the order of A to Z.

Now assume we need to sort the data based on Country-wise also we need to sort the “Gross Sales” from highest to lowest. In such cases, we need to make use of Key2 and Order2 arguments as well.

After mentioning Key1 & Order1, let’s choose Key2.

Code:

Sub Sort_Range_Example() Range("A1:E17").Sort Key1:=Range("B1"), Order1:=xlAscending,Key2:= End Sub

Since we are sorting the data based on the “Gross Sales” column, our Key2 column name will be Range(“D1”).

Code:

Sub Sort_Range_Example() Range("A1:E17").Sort Key1:=Range("B1"), Order1:=xlAscending,Key2:=Range("D1"), End Sub

Once the Key2 is specified, we need to decide on the sorting patter of whether it is ascending order or descending order in Order2 argument. Since we are sorting the sales value from largest to smallest, we can choose “xlDescending” order.

Code:

Sub Sort_Range_Example() Range("A1:E17").Sort Key1:=Range("B1"), Order1:=xlAscending, Key2:=Range("D1"), Order2:=xlDescending, Header:=xlYes End Sub

After that, mention the Header argument as “xlYes.” Now run the code and see what happens.

Output:

Previously it has sorted based only on “Country-wise” but this time it has sorted based on “Country-wise” first and then also on “Gross Sales” from highest to lowest.

W ten sposób możemy użyć metody „ Sort ” w VBA do organizowania danych.

Rzeczy do zapamiętania dotyczące zakresu sortowania Excel VBA

  • Sortowanie jest metodą dostępną w VBA i aby uzyskać do niej dostęp, musimy określić, jaki zakres komórek będziemy sortować.
  • Jeśli zakres danych zawiera nagłówki, musimy wybrać opcję nagłówka jako „xlYes”, jeśli nie, możemy wybrać „xlNo”.

Interesujące artykuły...