VBA Sorteringsområde - Hur sorterar man intervall i Excel VBA?

Innehållsförteckning

Excel VBA sorteringsområde

Sortera ett intervall i VBA görs efter range.sort-metoden, det är en egenskap för intervallmetoden som en användare kan sortera ett intervall i ordning, argumenten för den här funktionen är Key1, Order1, Key2, Type, Order2, Key3 , Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3, alla argument för den här funktionen är valfria.

Som en del av dataorganiseringen eller datastruktureringen är det viktigt att sortera data och organisera dem. En liknande sak finns också med VBA, så en vanlig fråga om nya VBA-elever är hur vi kan använda det här sorteringsalternativet som en del av VBA-automatisering, och den här artikeln guidar dig genom VBA-sortimentet i detalj.

Med Excel är vi alla bekanta med alternativet för den typ som finns tillgänglig under fliken DATA.

Sorteringsalternativ i VBA

För att använda sorteringsalternativet måste vi först bestämma vad vårt dataområde är och nämna samma dataintervall genom att använda RANGE-objektet i VBA, då är det bara vi som kan komma åt alternativet “Sortera” i VBA. Antag till exempel att mitt dataområde är från A1 till D10, då kan vi tillhandahålla dataområdet enligt följande.

Koda:

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

Sätt nu en punkt och välj “SORTERA” -metoden.

Koda:

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

Nedan visas syntaxen för SORT-metoden för intervall. Även om syntax har olika argument behöver vi inte alla för vår VBA-kodning, så vi behöver bara några få element.

(Key1): I det dataområde som vi sorterar måste vi ange vilken kolumn vi behöver sortera. Till exempel, i dataområdet A1: D10, om vi vill sortera data baserat på kolumn B, kommer (Key1) att vara Range (“B1”) .

(Order1): Den nämnda kolumnen i (Key1) -argumentet ska sorteras i vilken ordning. Vi kan välja två alternativ här "xlAscending" eller "xlDescending."

Rubrik: Det nämnda dataområdet har rubriker eller inte. Om ja, kan vi leverera “xlYes” eller annars kan vi leverera “xlNo.”

Exempel på sorteringsintervall i VBA

Låt oss ta exemplet med Excel VBA-sortiment för att förstå detta på ett bättre sätt.

Titta till exempel på datastrukturen nedan.

Vi har data från A1 till E17, så först kommer vi att sortera data baserat på "landsmässigt". Följ stegen nedan för att skriva koden för att sortera data.

Steg 1: Starta Excel-makroförfarandet.

Koda:

Sub Sort_Range_Example () Avsluta Sub

Steg 2: Nämn först dataområdet med hjälp av RANGE- objektet.

Koda:

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

Steg 3: Välj nu " Sortera " -metoden för Range-objektet.

Koda:

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

Steg 4: Eftersom vi sorterar data baserat på "Landsmässigt" kommer vår nyckel 1- argumentkolumn att vara Range ("B1").

Koda:

Sub Sort_Range_Example () Range ("A1: E17"). Sortering Key1: = Range ("B1"), End Sub

Steg 5: När den önskade kolumnen har nämnts måste vi nämna i vilken ordning vi behöver för att sortera data, och "Order1" kommer att vara "xlAscending" .

Koda:

Sub Sort_Range_Example () Range ("A1: E17"). Sortering Key1: = Range ("B1"), Order1: = xlScending, End Sub

Steg 6: Våra data har rubriker, så rubriken kommer att vara "xlYes."

Koda:

Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1"), Order1: = xlAscending, Header: = xlJa End Sub 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.

Så här kan vi använda " Sortera " -metoden i VBA för att organisera data.

Saker att komma ihåg om Excel VBA Sort Range

  • Sorteringen är en metod som är tillgänglig i VBA, och för att få åtkomst till den här metoden måste vi ange vilket cellområde vi ska sortera.
  • Om dataområdet innehåller rubriker måste vi välja rubrikalternativet som "xlYes", om inte, kan vi välja "xlNo."

Intressanta artiklar...