Hvordan sortere rekkevidde ved hjelp av VBA i Excel (6 eksempler)

  • Dele Denne
Hugh West

Å vite hvordan man sorterer rekkevidde ved hjelp av VBA i Excel er tids- og innsatsbesparende i våre daglige beregninger. Selv om Excel gir en sorteringsfunksjon som standard. Ved å bruke Range.Sort metoden får vi tilgang til flere parametere for å sortere et datasett med flere alternativer enn vanlig.

Last ned Practice Workbook

Last ned denne øvelsesarbeidsboken for å trene mens du leser denne artikkelen.

Sorter område i Excel.xlsm

Introduksjon til Range.Sort-setningen i Excel VBA

Mål : Å sortere et område med celledata.

Syntaks:

uttrykk .Sorter ( Nøkkel1 , Rekkefølge1 , Nøkkel2 , Type , Order2 , Nøkkel3 , Order3 , Overskrift , OrderCustom , MatchCase , Orientation , SortMethod , DataOption1 , DataOption2 , DataOption3 )

Her representerer uttrykket et Rekkevidde objekt, dvs. en celle, en rad, en kolonne eller et utvalg av celler.

Argumenter:

Vi må gi tre hovedparametere for Range.Sort metoden. De er-

Nøkkel – Celleområdet fra én eller flere kolonner vi trenger for å sortere.

Rekkefølge – Spesifiser sorteringsrekkefølgen enten stigende eller synkende.

Overskrift – Angi om kolonnene som skal sorteres har en overskrift eller ikke.

6 eksempler på sorteringsområde i Excel VBA

Inndenne artikkelen, som et datasett, vil vi bruke en liste over folks navn med fødselsdato og alder. Vi vil bruke forskjellige metoder for å sortere datasettet. La oss gå gjennom artikkelen og øve oss for å mestre disse metodene.

1. Sorter enkelt kolonneområde ved hjelp av Excel VBA

I dette eksemplet sorterer vi personer fra eldste til yngste . La oss følge trinnene for å bruke Rekkevidde . Sorterings metoden som vil sortere Alder-kolonnen i synkende rekkefølge .

Trinn:

  • Gå til Utviklerfanen i Excel-båndet for å klikke Visual Basic

  • Velg deretter Modul-alternativet fra Sett inn-fanen for å åpne en ny modul .

Nå legger vi koden vår til sortér kolonneområdet Alder .

1.1 Kolonne med overskrift

Plasser følgende kode i redigeringsprogrammet for visuelle koder.

9902

Trykk F5 eller klikk Kjør -knappen for å utføre koden.

Forklaring:

I koden ovenfor setter vi-

Expression (Range object)=Range(“D4:D11”); alderskolonnen med en overskrift i celle D4 og verdier i D5:D11.

Nøkkel = Range(“D4”); tasten for sortering.

Order= xlDescending; som vi ønsker å sortere verdier fra største til laveste angir vi sorteringsrekkefølgen som synkende.

Overskrift =xlYes; I det følgende skjermbildet kan vi se at datasettet har en overskrift for hver av kolonnene.

1.2 Kolonne uten overskrift

Sett inn følgende kode i den visuelle kodeeditoren.

7878

Trykk F5 eller klikk Kjør -knappen for å utføre koden.

Forklaring:

I koden ovenfor setter vi-

Expression (Range object)=Range(“D4) :D10”); alderskolonnen uten overskrift har verdier i D4:D10.

Nøkkel = Område(“D4”); tasten for sortering.

Order= xlDescending; som vi ønsker å sortere verdier fra største til laveste angir vi sorteringsrekkefølgen som synkende.

Header =xlNo; I det følgende skjermbildet kan vi se at datasettet ikke har noen overskrift.

Relatert innhold: Hvordan sortere kolonner i Excel uten å blande data (3 måter)

2. Bruk av VBA-kode for å sortere flere kolonner i Excel

For å vise sortering i flere kolonner , må vi endre våre datasett litt. Vi satte inn noen få nye rader . I det modifiserte datasettet har radene 7, 8, og 9 de samme verdiene for fødselsdatoen og alder men tre forskjellige navn . Disse navnene er ikke i noen spesifikk rekkefølge av stigende eller synkende.

I dette eksemplet vil vi sortere navnene i stigende rekkefølge . La oss kjøre følgende kode i Visual Basic-editoren:

8847

Forklaring:

I ovenstående skjermbilde, kan vi se at alderen i kolonne D er sortert i synkende rekkefølge. Vi la til to parametere til i vår forrige kode.

Nøkkel2: =Rekkevidde(“B4”) , nøkkelen for å sortere navn.

Rekkefølge2: =xlAscending , rekkefølgen for kortnavn .

Som et resultat ser vi navnene i rad 7, 8 og 9 er nå alfabetisk sortert i stigende rekkefølge.

I følgende skjermbilde endret vi verdi av Order2-parameteren for å sortere navnene i synkende rekkefølge.

Les mer: Hvordan sortere flere kolonner i Excel (5 raske tilnærminger)

3. Dobbeltklikk på overskriften for å sortere kolonneområde i Excel VBA

Excels standard sorteringsfunksjon tillater ikke å sortere verdiene i en kolonne etter dobbeltklikke kolonneoverskriften . Men ved å bruke VBA-kode kan vi få det til. La oss illustrere denne funksjonaliteten ved å bruke følgende kode.

5538

I denne koden brukte vi BeforeDoubleClick-hendelsen for å deaktivere det vanlige dobbeltklikket klikket som er å starte redigeringsmodusen for cellen. Med dette arrangementetkjører, hvis vi dobbelt klikker på en av kolonneoverskriftene sorteres kolonnedataene i stigende rekkefølge .

Les mer: VBA for å sortere kolonne i Excel (4 metoder)

Lignende avlesninger:

  • Hvordan legge til sorteringsknapp i Excel (7 metoder)
  • Sorter unik liste i Excel (10 nyttige metoder)
  • Hvordan å bruke sorteringsfunksjonen i Excel VBA (8 passende eksempler)
  • Sorter duplikater i Excel (kolonner og rader)
  • Tilfeldig sortering i Excel ( Formler + VBA)

4. Sorter kolonneområde basert på bakgrunnsfarge ved hjelp av Excel VBA

Vi kan sortere en rekke celler i en kolonne basert bakgrunnsfargen deres . For å gjøre det, må vi legge til en parameter ved navn SortOn som har en verdi xlSortOnCellColor . For å demonstrere sorteringen setter vi først forskjellige bakgrunnsfarger til radene i datasettet vårt .

Deretter i visual basic koderedigering kopier følgende kode og trykk F5 for å kjøre den.

4215

I følgende skjermbilde kan vi se det sorterte datasettet basert på bakgrunnsfargen deres.

Forklaring:

  • I dette eksemplet ga vi navnet arbeidsarket « bakgrunn ». Så i koden setter vi " bakgrunn " som vårt aktive regnearknavn.
  • Vi setter B4 som nøkkelen. og B4:D10 som område . Koden vil sortere data basert på nøkkelen.
  • Siden vi ikke spesifiserte header-parameteren , kjører koden for standard ingen header.
  • Vi satte parameteren ordre som stigende, så den sorterte dataene fra lavere til høyere verdier .

Les mer: Hvordan sortere etter farge i Excel (4 kriterier)

5. Bruk VBA-kode for å sortere kolonneområde basert på skriftfarge

Ved å bruke VBA-kode kan vi sortere datasettet vårt basert på deres skriftfarge . Først må vi farge forskjellige rader for å illustrere eksemplet.

Bruk koden nedenfor for å sortere datasettet basert på skriftfarge.

1914

Forklaring:

  • I denne for eksempel kalte vi arbeidsarket fontcolor ”. Så i koden legger vi " fontcolor " som vårt aktive regnearknavn.
  • Vi setter B4 som nøkkelen og B4:D11 som området . Koden vil sortere data basert på nøkkelen.
  • I dette eksemplet spesifiserte vi også header-parameteren som xlYes .
  • Her setter vi rekkefølgen parameter som stigende, så den sorterte dataene fra lavere til høyere verdier .
  • Verdien til parameteren SortOn er
  • orienteringsparameteren holder verdien xlTopToBottom som den er obligatorisk.
  • Farge å sortere på er i RGB-termer som har en verdifra 0 til 255 .

Les mer: Hvordan sortere to kolonner i Excel for å matche (begge eksakt og delvis samsvar)

6. Endre orientering til sorteringsområde ved hjelp av Excel VBA

Ved å bruke parameteren orientering kan vi endre måten vi ønsker å sortere data på. I dette eksemplet har vi transponert datasettet vårt for å sortere det horisontalt .

La oss sette Følg koden i Visual Basic-editoren og trykk F5 for å kjøre den.

8675

Her sorterte vi dataene basert på aldersraden i stigende rekkefølge fra venstre til høyre . I koden setter vi parameteren orientering som xlSortRows .

Relatert innhold: Hvordan automatisk sortere flere kolonner i Excel (3 måter)

Ting å huske

  • SortOn-parameteren som vi brukte til å sortere kolonneområde basert på bakgrunnsfarge og skriftfarge kan bare brukes av et regnearkobjekt . Vi kan ikke bruke det med et områdeobjekt .
  • BeforeDoubleClick-hendelsen sorterer data bare i stigende.

Konklusjon

Nå vet vi hvordan vi sorterer rekkevidde ved hjelp av VBA i Excel. Forhåpentligvis vil det oppmuntre deg til å bruke dette mer selvsikkert. Eventuelle spørsmål eller forslag, ikke glem å sette dem i kommentarfeltet nedenfor.

Hugh West er en svært erfaren Excel-trener og analytiker med over 10 års erfaring i bransjen. Han har en bachelorgrad i regnskap og finans og en mastergrad i bedriftsøkonomi. Hugh har en lidenskap for undervisning og har utviklet en unik undervisningstilnærming som er enkel å følge og forstå. Hans ekspertkunnskap om Excel har hjulpet tusenvis av studenter og fagfolk over hele verden med å forbedre sine ferdigheter og utmerke seg i karrieren. Gjennom bloggen sin deler Hugh sin kunnskap med verden, og tilbyr gratis Excel-opplæringer og nettbasert opplæring for å hjelpe enkeltpersoner og bedrifter å nå sitt fulle potensial.