VBA for å sortere kolonne i Excel (4 metoder)

  • Dele Denne
Hugh West

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.
  • xlAscending = For å sortere i stigende rekkefølge.
  • xlDescending = For å sortere i synkende rekkefølge.
Overskrift Valgfritt XlYesNoGuess Spesifiserer om den første raden inneholder overskrifter eller ikke .
  • xlNo = Når kolonnen ikke har noen overskrifter; Standardverdi.
  • xlYes = Nårkolonnene har overskrifter.
  • xlGuess = For å la Excel bestemme overskriftene.

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

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.