Excel VBA Sort

Det er forskjellige måter å sortere dataene i Microsoft Excel. Det er et sorteringsikon under fanebåndet Excel Data, der du kan sortere dataene dine på en vits og få resultatene. Hvorfor er det behov for å skrive den komplekse VBA-koden da?

Du må ha det i bakhodet hver gang, VBA-koder er der for å automatisere tingene. Anta at du har data som blir oppdatert nå og da. Kanskje hver dag, ukentlig, månedlig osv., Og du trenger dataene dine på en bestemt sortert måte. I slike tilfeller kan VBA SORT-funksjonen brukes og vil komme ut som et nyttig verktøy for din referanse.

VBA har en Range.Sort-metode for å sortere dataene for deg. Hvor Range spesifiserer området med celler som vi vil sortere i stigende eller synkende rekkefølge.

Syntaks for Range.Sort er som gitt nedenfor:

Hvor,

  • Tast - kolonne / område du trenger å sortere. Ex. Hvis du vil sortere celler A1: A10, må du nevne Range (A1: A10)
  • Ordre - Dette er parameteren som lar deg sortere dataene i stigende eller synkende rekkefølge.
  • Header - Dette er parameteren som spesifiserer om kolonnen / området ditt har overskrifter eller ikke.

Disse tre parameterne er nok for vår saksgang. Imidlertid er det noen andre parametere som MatchCase, SortMethod, etc. som du alltid kan utforske og se hvordan de fungerer.

Hvordan bruke Excel VBA sorteringsfunksjon?

Vi lærer hvordan VBA Sort kan brukes til å sortere kolonnen uten overskrifter, en kolonne med overskrifter og Flere kolonner med eksempler i Excel.

Du kan laste ned denne VBA Sort Excel-malen her - VBA Sort Excel-mal

VBA sorteringsfunksjon - eksempel # 1

Sorterer enkelt kolonne uten overskrift

Anta at du har en kolonne med navn som vist nedenfor, og alt du trenger er å sortere disse dataene alfabetisk i stigende eller synkende rekkefølge.

Følg trinnene nedenfor for å bruke sorteringsfunksjonen i VBA.

Trinn 1: Definer en ny sup-prosedyre under en modul og lag en makro.

Kode:

 Sub SortEx1 () Slutt Sub 

Trinn 2: Bruk Range.Sort-funksjonen for å kunne sortere denne kolonnen i stigende rekkefølge.

Kode:

 Sub SortEx1 () Range ("A1", Range ("A1"). End (xlDown)). Sort End Sub 

Her gir du rekkevidde fra celle A1 til den siste brukte / ikke-tomme cellen (se funksjonen. End (xlDown)) til Range.Sort-funksjonen.

Trinn 3: Legg inn argumentverdiene.

Kode:

 Sub SortEx1 () Range ("A1", Range ("A1"). End (xlDown)). Sort Key1: = Range ("A1"), Order1: = xlAscending, Header: = xlNo End Sub 

Som vi har diskutert tidligere, er nøkkel, orden og overskrift de viktige og nødvendige argumentene som skal gis. Vi har gitt rekkevidde (“A1”) som kolonnens startområde som vi trenger å sortere. Ordren er gitt som stigende og topptekst som nei (som betyr at kolonnen ikke har overskrift).

Denne koden vil sjekke for alle ikke-tomme celler som starter fra A1 og deretter sortere dem i stigende rekkefølge fra celle A1.

Trinn 4: Kjør denne koden ved å trykke på F5 eller Run-knappen manuelt og se utdataene.

Hvis du kan sammenligne dette med bildet i begynnelsen av dette eksemplet, kan du se at navnene er sortert i stigende rekkefølge.

VBA sorteringsfunksjon - eksempel # 2

Sortere en enkelt kolonne med overskrift

Anta at du har en kolonne med overskriften som vist nedenfor. Og du ville sortere denne kolonnen i stigende eller synkende rekkefølge.

Følg trinnene nedenfor for å bruke sorteringsfunksjonen i VBA.

Trinn 1: Definer en ny delprosedyre under en ny modell for å lagre makroen.

Kode:

 Sub SortEx2 () Slutt Sub 

Trinn 2: Bruk ark ("eksempel # 2") for å spesifisere hvilket ark dataene dine er.

Kode:

 Sub SortEx2 () Ark ("Eksempel # 2") Slutt Sub 

Trinn 3: Bruk Range (“A1”). Sorter foran kodelinjen ovenfor for å gjøre det til en sorteringsfunksjon.

Kode:

 Sub SortEx2 () Ark ("Eksempel # 2"). Område ("A1"). Sort End Sub 

Trinn 4: Gi Key1 som Range (“A1”) for å sortere dataene fra celle A1, Order1 for å sortere dataene i stigende eller synkende rekkefølge og Header som Ja for å gi systemet beskjed om at første rad er overskrift i data.

Kode:

 Sub SortEx2 () Ark ("Eksempel # 2"). Område ("A1"). Sorteringsnøkkel1: = Område ("A1"), rekkefølge1: = xlScending, overskrift: = xlJa Slutt sub 

Trinn 5: Kjør denne koden ved å trykke på F5 eller Run-knappen manuelt og se utgangen.

Her blir dataene fra eksempel nr. 2 i gitt Excel-arbeidsbok sortert i stigende rekkefølge gitt at den har en overskrift. Noe som betyr at mens du sorterer disse dataene, blir den første raden (som inneholder Emp-navn ) forsømt fordi den blir sett på som en overskrift for disse dataene i kolonne A.

Du kan også sortere de samme dataene i synkende rekkefølge på alfabeter. Alt du trenger å gjøre er å endre rekkefølgen fra stigende til synkende.

Trinn 6: Endre rekkefølge1 til synkende for å sortere dataene i synkende rekkefølge.

Kode:

 Sub SortEx2 () Ark ("Eksempel # 2"). Område ("A1"). Sorteringsnøkkel1: = Område ("A1"), Order1: = xlDescending, Header: = xlYes End Sub 

Trinn 7: Kjør koden og se en utgang som gitt nedenfor.

Du kan se at dataene er sortert i synkende rekkefølge.

VBA sorteringsfunksjon - eksempel # 3

Sortere flere kolonner med overskrifter

Til nå har vi dekket hvordan du sorterer en enkelt kolonnedata i stigende eller synkende rekkefølge (uten topptekst og med topptekst). Hva om du har data som du trenger å sortere basert på flere kolonner? Er det mulig å skrive en kode for det samme?

Svaret er: "Ja, det kan sikkert gjøres!"

Anta at du har data som gitt nedenfor:

Du ville sortere disse dataene først etter Emp Name og deretter etter Location. Følg trinnene nedenfor for å se hvordan vi kan kode det i VBA.

Trinn 1: Definer en ny delprosedyre for å legge til en makro under en ny modul.

Kode:

 Sub SortEx3 () Slutt Sub 

Trinn 2: Bruk en With… End With- setning for å legge til flere sorteringsbetingelser i en enkelt loop.

Kode:

 Sub SortEx3 () Med ActiveSheet.Sort End Sub 

Trinn 3: Nå bruker du SortFields.Tillegg for å legge til flere sorteringsbetingelser i det samme regnearket.

Kode:

 Sub SortEx3 () Med ActiveSheet.Sort .SortFields.Add Key: = Range ("A1"), Order: = xlAscending .SortFields.Add Key: = Range ("B1"), Order: = xlAscending End Sub 

Trinn 4: Bestem arkområdet som skal sorteres og header i neste trinn.

Kode:

 Sub SortEx3 () Med ActiveSheet.Sort .SortFields.Add Key: = Range ("A1"), Order: = xlAscending .SortFields.Add Key: = Range ("B1"), Order: = xlAscending .SetRange Range ("A1 : C13 ") .Header = xlYes End Sub 

Trinn 5: Bruk. Søk om å bruke alle disse tingene med påstand og lukk loopen skrivingen Slutt med.

Kode:

 Sub SortEx3 () Med ActiveSheet.Sort .SortFields.Add Key: = Range ("A1"), Order: = xlAscending .SortFields.Add Key: = Range ("B1"), Order: = xlAscending .SetRange Range ("A1 : C13 ") .Header = xlYes. Bruk slutt med sluttund 

Trinn 6: Kjør denne koden ved å trykke på F5 eller Run-knappen manuelt og se Output.

I denne koden hjelper ActiveSheets.Sort systemet med å identifisere arket som data skal sorteres under. SortFields.Add lar deg legge til to sorteringsbetingelser med rekkefølgen (Stigende i begge tilfeller). SetRange lar systemet stille inn området fra A1 til C13. Du kan også øke dette området. Bruk uttalelser gjør at systemet kan bruke alle endringene som er gjort i With loop.

Til slutt får du dataene som er sortert basert på Emp Name First og deretter etter Location.

Ting å huske

  • Under VBA Sort kan du opprette navngitte områder i stedet for cellehenvisninger og bruke det samme. Ex. Hvis du har opprettet det navngitte området for celle A1: A10 som “EmpRange”, kan du bruke det under Range.Sort like Range (“EmpRange”).
  • Du kan sortere dataene i stigende så vel som i synkende rekkefølge som i excel.
  • Hvis du ikke er sikker på om dataene dine har en header eller ikke, kan du bruke xlGuess under Header-delen for å la systemet gjette om den første datalinjen er en header eller ikke.

Anbefalte artikler

Dette har vært en guide til Excel VBA Sort. Her diskuterte vi VBA Sort og hvordan du bruker Excel VBA Sort Funksjon sammen med praktiske eksempler og nedlastbar Excel-mal. Du kan også gå gjennom andre foreslåtte artikler -

  1. Rask guide til Excel sortering etter nummer
  2. Bruker VBA Match-funksjon
  3. Hvordan sortere kolonne i Excel?
  4. VBA While Loop | MS Excel

Kategori: