Innholdsfortegnelse
For å sortere i Excel med VBA , må du bruke Range.Sort -metoden. I denne artikkelen vil vi vise deg hvordan du sorterer kolonnen i Excel med Range.Sort -metoden VBA .
Last ned arbeidsbok
Du kan laste ned Excel-arbeidsboken gratis herfra.
Sorter kolonne med VBA.xlsm
Range.Sort-metode i Excel VBA
Range.Sort -metoden i VBA sorterer en rekke verdier i Excel. Her er Område en objektvariabel som spesifiserer celleområdet som vi ønsker å sortere i stigende eller synkende rekkefølge.
Nedenfor er parametrene du trenger å vite om mens du arbeider med denne metoden.
Parameter | Obligatorisk/valgfritt | Datatype | Beskrivelse |
---|---|---|---|
Nøkkel | Valgfri | Variant | Spesifiserer området eller kolonnen hvis verdier skal sorteres. |
Ordre | Valgfritt | XlSortOrder | Angir rekkefølgen sorteringen skal utføres i.
|
Overskrift | Valgfritt | XlYesNoGuess | Spesifiserer om den første raden inneholder overskrifter eller ikke .
|
4 metoder for å implementere VBA for å sortere kolonne i Excel
I denne delen vil du vite hvordan du sorterer en enkelt kolonne med og uten overskrift , flere kolonner med og uten overskrifter og hvordan sorteres bare ved å dobbeltklikke på overskriften i en kolonne i Excel.
1. Bygg inn VBA for å sortere en enkelt kolonne uten overskrift i Excel
Hvis du vil sortere en enkelt kolonne i Excel-regnearket med VBA -koden, følg deretter trinnene nedenfor.
Dette er kolonnen vår som vi vil sortere med VBA -kode.
Trinn:
- Trykk Alt + F11 på tastaturet eller gå til fanen Utvikler -> Visual Basic for å åpne Visual Basic Editor .
- I popup-kodevinduet, fra menylinjen , klikk Sett inn -> Modul .
- Kopiér følgende kode og lim den inn i kodevinduet.
7757
Din kode er nå klar til å kjøre.
Her,
- Key1:=Range(“B5”) → Spesifisert B5 for å fortelle koden hvilken kolonne som skal sorteres.
- Order1:=xlAscending → Spesifiserte rekkefølgen som xlAscending for å sortere kolonnen i stigende rekkefølge. Hvis du vil sortere kolonnen i synkende rekkefølge, skriv xlDescending i stedet.
- Header:= xlNo →Siden kolonnen vår ikke har noen overskrift, spesifiserte vi den med xlNo alternativet.
- Trykk F5 på tastaturet eller fra menylinjen velg Kjør -> Kjør Sub/UserForm . Du kan også bare klikke på det lille Spill-ikonet i undermenylinjen for å kjøre makroen.
Du vil se at din kolonnen er nå sortert i stigende rekkefølge .
Merk at vi her har definert dataområdet manuelt som Range(“B5:B15” ) .
Hvis du ønsker å endre data ved å legge til eller slette verdier, kan du implementere følgende kode som automatisk oppdateres basert på cellene i datasettet.
3933
Merk at i stedet for å definere område manuelt med Range(“B5:B15”) , har vi skrevet, Range( “B5”, Range(“B5”). End(xlDown)) .
Dette vil sortere kolonnen basert på den siste fortløpende fylte cellen i den. Hvis det er tomme celler, vil dataene kun bli vurdert opp til den første tomme cellen.
Les mer: VBA for å sortere tabell i Excel (4 metoder)
2. Sett inn VBA-makro for å sortere en enkelt kolonne med overskrift
I forrige seksjon hadde vi et datasett med en enkelt kolonne uten overskrift, men nå har vi a kolonne med en overskrift .
Denne gangen lærer vi hvordan du sorterer den med VBA-makro .
Trinn:
- På samme måte som før, åpne Visual Basic Editor fra kategorien Utvikler og Sett inn en modul i kodevinduet.
- I kodevinduet kopierer du følgende kode og limer den inn.
3946
Koden din er nå klar til å kjøre.
Her,
- Key1:=Range(“ B5”) → Spesifisert B5 for å gi koden beskjed om hvilken kolonne som skal sorteres.
- Order1:=xlDescending → Denne gangen vil vi sortere kolonnen i synkende rekkefølge spesifiserte derfor rekkefølgen som xlDescending .
- Overskrift:= xlJa → Siden vår kolonne har en overskrift denne gangen, spesifiserte vi den med xlYes alternativ.
- Kjør denne koden, så får du kolonnen med overskrift sortert i synkende rekkefølge .
Les mer: Hvordan sortere listeboks med VBA i Excel (en komplett veiledning)
Lignende avlesninger:
- Hvordan sortere IP-adresse i Excel (6 metoder)
- [Løst!] Excel-sortering fungerer ikke (2 løsninger)
- Hvordan legge til sorteringsknapp i Excel (7 metoder)
- Sort Rangering e Bruke VBA i Excel (6 eksempler)
- Hvordan sortere etter navn i Excel (3 eksempler)
3. VBA-makro for å sortere flere kolonner med eller uten overskrift
Du kan også sortere flere kolonner i datasettet med VBA-kode.
Trinn:
- Som tidligere vist, åpne Visual Basic Editor fra kategorien Utvikler og Sett inn en Modul i kodevinduet.
- I kodevinduet kopierer du følgende kode og limer den inn.
7836
Koden din er nå klar til å kjøre.
Her,
.SortFields.Add Key:=Range(“B4”), Order:=xlAscending
.SortFields.Add Key:=Range(“C4 ”), Order:=xlAscending
Ved disse to linjene definerer vi celle B4 og C4 for å sortere to kolonner knyttet til dem i stigende rekkefølge .
Siden vi har overskrifter i datasettet vårt, spesifiserte vi Header = xlYes , ellers ville vi ha skrevet Header = xlNo inne i koden.
- Kjør denne koden så får du kolonnene med overskrift sortert i stigende rekkefølge .
4. Makro for å sortere data ved å dobbeltklikke på overskriften i Excel
Hvis du vil sortere dataene enkelt ved å dobbeltklikke på overskriften , kan du gjøre det med VBA kode.
Trinn:
- Høyreklikk på arkfanen .
- Fra alternativlisten som vises, klikk Vis kode .
- Kodevinduet vises, kopier følgende kode og lim den inn der.
1868
- Lagre koden.
- Gå nå tilbake til arbeidsarket av interesse og hvis du dobbeltklikk på overskriftene du vil se at kolonnene omorganiseres.
Les mer: Hvordan sortere og filtrere data i Excel (en fullstendig retningslinje)
Ting å huske
- Du kan opprette et navngitt område og bruke det i stedet når du sender et område med cellereferanser i Sorter metode. For eksempel, hvis du vil sortere området A1:A10 , i stedet for å sende det hver gang inne i koden, kan du opprette et navngitt område av det, for eksempel " SortRange ” og bruk den med Range.Sort -metoden som Range(“SortRange”) .
- Hvis du ikke er sikker på om datasettet ditt har overskrifter eller ikke, kan du la systemet bestemme det ved å bruke xlGuess parameteren.
Konklusjon
Denne artikkelen viste hvordan du sorter kolonnen i Excel VBA . Jeg håper denne artikkelen har vært veldig nyttig for deg. Spør gjerne hvis du har spørsmål angående emnet.