Innholdsfortegnelse
Å 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 på 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 på 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 på 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.