VBA-sorteerbereik

Excel VBA-sorteerbereik

Het sorteren van een bereik in VBA gebeurt op range.sort-methode, het is een eigenschap van de bereikmethode waarmee een gebruiker een bereik op volgorde kan sorteren, de argumenten voor deze functie zijn de Key1, Order1, Key2, Type, Order2, Key3 , Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3, alle argumenten voor deze functie zijn optioneel.

Als onderdeel van de gegevensorganisatie of gegevensstructurering, is het belangrijk om de gegevens te sorteren en te ordenen. Iets soortgelijks is ook beschikbaar met VBA, dus een veelgestelde vraag over nieuwe leerlingen van VBA is hoe we deze sorteeroptie kunnen gebruiken als onderdeel van VBA-automatisering en dit artikel leidt je in detail door het VBA Sort-assortiment.

Met Excel zijn we allemaal bekend met de optie van de soort die beschikbaar is onder het tabblad GEGEVENS.

Sorteeroptie in VBA

Om de sorteeroptie te gebruiken, moeten we eerst beslissen wat ons gegevensbereik is en hetzelfde gegevensbereik vermelden door het RANGE-object in VBA te gebruiken, dan hebben alleen we toegang tot de optie "Sorteren" in VBA. Stel dat mijn gegevensbereik van A1 tot D10 is, dan kunnen we het gegevensbereik als volgt opgeven.

Code:

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

Zet nu een punt en selecteer de "SORT" -methode.

Code:

 Sub Sort_Range_Example () Bereik ("A1: D10"). Sorteren Einde Sub 

Hieronder staat de syntaxis van de SORT-methode van bereik, hoewel de syntaxis verschillende argumenten heeft, hebben we ze niet allemaal nodig voor onze VBA-codering, dus we hebben maar een paar elementen nodig.

[Key1]: In het gegevensbereik dat we sorteren, moeten we specificeren welke kolom we moeten sorteren. Bijvoorbeeld in het data bereik van A1: D10 als we willen de gegevens op basis van kolom B vervolgens gekozen [Key1] zal zijn Range ( “B1”) .

[Order1]: De genoemde kolom in het [Key1] argument moet in welke volgorde worden gesorteerd. We kunnen hier twee opties kiezen "xlAscending" of "xlDescending".

Header: Het genoemde gegevensbereik heeft headers of niet, zo ja, dan kunnen we “xlYes” leveren of anders kunnen we “xlNo” leveren.

Voorbeeld van sorteerbereik in VBA

Laten we het voorbeeld nemen van Excel VBA-sorteerbereik om dit op een betere manier te begrijpen.

U kunt deze VBA Sort Range Excel-sjabloon hier downloaden - VBA Sort Range Excel-sjabloon

Bekijk bijvoorbeeld de onderstaande datastructuur.

We hebben gegevens van A1 tot E17, dus eerst sorteren we de gegevens op basis van "Landelijk". Volg de onderstaande stappen om de code te schrijven om de gegevens te sorteren.

Stap 1: Start de Excel-macroprocedure.

Code:

 Sub Sort_Range_Example () End Sub 

Stap 2: vermeld eerst het gegevensbereik met behulp van het RANGE- object.

Code:

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

Stap 3: Kies nu de “ Sort ” -methode van het Range-object.

Code:

 Sub Sort_Range_Example () Bereik ("A1: E17"). Sorteren Einde Sub 

Stap 4: Aangezien we de gegevens sorteren op basis van "Landelijk", is onze kolom met sleutel 1- argument Bereik ("B1").

Code:

 Sub Sort_Range_Example () Bereik ("A1: E17"). Sorteersleutel1: = Bereik ("B1"), End Sub 

Stap 5: Zodra de vereiste kolom is vermeld, moeten we vermelden in welke volgorde we de gegevens moeten sorteren en "Order1" zal de volgorde "xlAscending" zijn.

Code:

 Sub Sort_Range_Example () Bereik ("A1: E17"). Sorteersleutel1: = Bereik ("B1"), Order1: = xlAscending, End Sub 

Stap 6: Onze gegevens hebben kopteksten, dus koptekst is "xlYes".

Code:

 Sub Sort_Range_Example () Bereik ("A1: E17"). Sorteersleutel1: = Bereik ("B1"), Order1: = xlAscending, Header: = xlYes End Sub 

We hebben alle elementen genoemd die nodig zijn om de gegevens te sorteren. Voer de code uit door op de F5-functie en -toets te drukken en bekijk het resultaat.

Uitgang:

De gegevens zijn gesorteerd op basis van landnamen in de volgorde van A tot Z.

Stel nu dat we de gegevens moeten sorteren op basis van landspecifiek, we moeten ook de " bruto-omzet " sorteren van hoog naar laag. In dergelijke gevallen moeten we ook gebruik maken van Key2- en Order2-argumenten.

Nadat we Key1 & Order1 hebben genoemd, kiezen we Key2.

Code:

 Sub Sort_Range_Example () Bereik ("A1: E17"). Sorteersleutel1: = Bereik ("B1"), Order1: = xlAscending, Key2: = End Sub 

Aangezien we de gegevens sorteren op basis van de kolom " Bruto-omzet ", is de naam van de kolom Sleutel2 Bereik ("D1").

Code:

 Sub Sort_Range_Example () Bereik ("A1: E17"). Sorteer Sleutel1: = Bereik ("B1"), Order1: = xlAscending, Sleutel2: = Bereik ("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.

Like this, we can use the “Sort” method in VBA to organize the data.

Things to Remember about Excel VBA Sort Range

  • The sort is a method available in VBA and to access this method we need to specify what the range of cells we are going to sort.
  • If the data range includes headers then we need to choose the header option as “xlYes”, if not we can choose “xlNo”.