VBA Sorteringsområde

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å vanliga frågor om nya lärare i VBA är hur vi kan använda detta sorteringsalternativ 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 sort 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 dataintervall är och nämna samma dataintervall genom att använda RANGE-objekt i VBA, sedan ä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 så 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 är 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 argumentet [Key1] 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, vi kan 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.

Du kan ladda ner denna Excel-mall för VBA Sort Range här - VBA Excel-mall för Sort Range

Titta till exempel på datastrukturen nedan.

Vi har data från A1 till E17, så först sorterar vi 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- objekt.

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"). Sortera End Sub 

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

Koda:

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

Steg 5: När den önskade kolumnen nämns 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"). Sort Key1: = Range ("B1"), Order1: = xlAscending, 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 

Vi har nämnt alla element som krävs för att sortera data. Kör koden genom att trycka på F5-funktionen och -tangenten och se resultatet.

Produktion:

Data har sorterats baserat på landsnamn i ordningen A till Z.

Antag nu att vi måste sortera data baserat på landsmässigt, vi måste också sortera " Bruttoförsäljningen " från högsta till lägsta. I sådana fall måste vi också använda argumenten Key2 och Order2.

Efter att ha nämnt Key1 & Order1, låt oss välja Key2.

Koda:

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

Eftersom vi sorterar data baserat på ” Gross Sales ” -kolumnen vår Key2 kolumnnamnet blir Range ( ”D1”).

Koda:

 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.

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”.