Kako razvrstiti obseg z uporabo VBA v Excelu (6 primerov)

  • Deliti To
Hugh West

Z znanjem, kako razvrstiti območje z uporabo VBA v Excelu, prihranite čas in trud pri vsakodnevnih izračunih. Čeprav Excel privzeto zagotavlja možnost razvrščanja, z uporabo Razpon.Razvrsti metoda , dobimo dostop do več parametrov za razvrščanje podatkovne množice z več možnostmi kot običajno.

Prenesi delovni zvezek za prakso

Prenesite ta delovni zvezek za vadbo, ki ga lahko uporabljate med branjem tega članka.

Razvrstitev območja v Excel.xlsm

Uvod v izjavo Range.Sort v programu Excel VBA

Cilj : Razvrstitev območja podatkov v celicah.

Sintaksa:

izraz .Sort ( Ključ1 , Naročilo1 , Ključ2 , Tip , Naročilo2 , Ključ3 , Order3 , Naslov , OrderCustom , MatchCase , Orientacija , SortMethod , DataOption1 , DataOption2 , DataOption3 )

Tu je izraz predstavlja Razpon tj. celico, vrstico, stolpec ali izbor celic.

Argumenti:

Zagotoviti moramo tri glavni parametri za Razpon.Razvrsti metoda. So...

Ključ - Razpon celic iz enega ali več stolpcev, ki jih moramo razvrstiti.

Naročilo - Določite vrstni red razvrščanja, bodisi naraščajoče bodisi padajoče.

Naslov - Določite, ali imajo stolpci, ki jih je treba razvrstiti, glavo ali ne.

6 primerov za razvrščanje obsega v Excelu VBA

V tem članku bomo kot podatkovno množico uporabili seznam imen ljudi z njihovim datumom rojstva in starostjo. Za razvrščanje podatkovne množice bomo uporabili različne metode. Pojdimo skozi članek in vadimo, da osvojimo te metode.

1. Razvrstitev območja enega stolpca z uporabo programa Excel VBA

V tem primeru bomo razvrščanje ljudi iz najstarejši na . najmlajši . Sledimo korakom za uporabo Razpon . Razvrsti metoda ki bo razvrščanje . Stolpec za starost na spletnem mestu padajoči vrstni red .

Koraki:

  • Pojdite na Zavihek Razvijalec v Excelov trak na . kliknite na Visual Basic

  • Nato izberite Možnost modula iz zavihek Vstavljanje za odprtje nov modul .

Zdaj bomo našo kodo prenesli v razvrščanje . Starost razpon stolpcev.

1.1 Stolpec z glavo

V urejevalnik vizualne kode vnesite naslednjo kodo.

 Sub SortRange() Razpon("D4:D11").Sort Key1:=Range("D4"), _ Order1:=xlDescending, _ Header:=xlYes End Sub 

Pritisnite F5 ali kliknite na Spustite gumb za izvedba kodo.

Pojasnilo:

V zgornji kodi smo vnesli-

Izraz (objekt Range)=Range("D4:D11"); . stolpec za starost z naslov na spletnem mestu celica D4 in . vrednosti na spletnem mestu D5:D11.

Ključ = Razpon("D4"); . ključ za razvrščanje.

Order= xlDescending; kot želimo. razvrščanje vrednosti iz največji na . najnižja nastavimo vrstni red razvrščanja kot padajoče.

Header =xlYes; Na naslednji sliki zaslona lahko vidimo, da je nabor podatkov ima naslov za vsako od stolpci.

1.2 Stolpec brez glave

V urejevalnik vizualne kode vnesite naslednjo kodo.

 Sub SortRange() Razpon("D4:D10").Sort Key1:=Range("D4"), _ Order1:=xlDescending, _ Header:=xlNo End Sub 

Pritisnite F5 ali kliknite na Spustite gumb za izvedba kodo.

Pojasnilo:

V zgornji kodi smo vnesli-

Izraz (objekt Range)=Range("D4:D10"); . stolpec za starost brez naslov ima . vrednosti na spletnem mestu D4:D10.

Ključ = Razpon("D4"); . ključ za razvrščanje.

Order= xlDescending; kot želimo. razvrščanje vrednosti iz največji na . najnižja nastavimo vrstni red razvrščanja kot padajoče.

Header =xlNo; Na naslednji sliki zaslona lahko vidimo, da je nabor podatkov nima glavo.

Sorodna vsebina: Kako razvrstiti stolpce v Excelu brez mešanja podatkov (3 načini)

2. Uporaba kode VBA za razvrščanje več stolpcev v Excelu

Prikaz razvrščanja v več stolpcev , moramo spremeniti naš nabor podatkov malo. Mi vstavljen nekaj novo vrstice V spremenjenem naboru podatkov so vrstice 7, 8, in . 9 imajo enako vrednosti za datum rojstva in . starosti vendar tri različna imena . imena so . ne v katerem koli posebno naročilo vzpenjanja ali spuščanja.

V tem primeru bomo imena razvrstili v naraščajoči vrstni red . V urejevalniku Visual Basic zaženimo naslednjo kodo:

 Sub SortRange() Razpon("B4:D12").Sort Key1:=Range("D4"), _ Order1:=xlDescending, _ Key2:=Range("B4"), _ Order2:=xlAscending, _ Header:=xlYes End Sub 

Pojasnilo:

Na zgornji sliki zaslona lahko vidimo, da so starosti v stolpec D so . razvrščeno na spletnem mestu padajoče Naročilo. Dodali smo še dva parametra v naši prejšnji kodi.

Key2: =Range("B4") , tipko za razvrščanje imen.

Order2: =xlAscending , je Naročite na . za krajšanje imen .

Zaradi tega se pojavljajo imena na spletnem mestu vrstice 7, 8 in 9 so zdaj po abecedi razvrščene v naraščajoče naročite.

Na naslednji sliki zaslona smo spremenili vrednost o Parameter Order2 na . razvrščanje . imena na spletnem mestu padajoče naročite.

Preberite več: Kako razvrstiti več stolpcev v Excelu (5 hitrih pristopov)

3. Dvakratni klik na glavo za razvrščanje stolpcev v Excelu VBA

Excelova privzeta funkcija razvrščanja ne omogoča, da bi razvrščanje vrednosti stolpca z dvojni klik na . glavo stolpca . Toda z uporabo kode VBA lahko to izvedemo. Ponazorimo to funkcionalnost z uporabo naslednje kode.

 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim KeyRange As Range Dim ColCount As Integer ColCount = Range("A1:C8").Columns.Count Cancel = False If Target.Row = 1 And Target.Column <= ColCount Then Cancel = True Set KeyRange = Range(Target.Address) Range("A1:C8").Sort Key1:=KeyRange, Header:=xlYes End If End Sub 

V tej kodi smo uporabili Dogodek BeforeDoubleClick na . onemogočite običajno dvojno - kliknite ki je za začetek urejanje način celice. Če je ta dogodek zagnan, lahko dvojni - kliknite na katerem koli od glave stolpcev razvrsti podatke v stolpcih v naraščajoči vrstni red .

Preberite več: VBA za razvrščanje stolpcev v Excelu (4 metode)

Podobna branja:

  • Kako dodati gumb za razvrščanje v Excelu (7 metod)
  • Razvrstitev edinstvenega seznama v Excelu (10 uporabnih metod)
  • Kako uporabiti funkcijo razvrščanja v programu Excel VBA (8 primernih primerov)
  • Razvrščanje podvojenih datotek v Excelu (stolpci in vrstice)
  • Naključno razvrščanje v Excelu (formule + VBA)

4. Razvrstitev obsega stolpcev na podlagi barve ozadja z uporabo programa Excel VBA

Razpon celic v stolpcu lahko razvrstimo . na njihovem barva ozadja Da bi to dosegli, moramo dodaj a parameter z imenom SortOn ki ima vrednost xlSortOnCellColor Za prikaz razvrščanja najprej nastavimo različne barve ozadja v vrstice našega nabor podatkov .

Nato v urejevalniku kode Visual Basic kopiranje naslednjo kodo in pritisnite F5 da ga zaženete.

 Sub SortRangeByBackgroundColor() ActiveWorkbook.Worksheets("background").Sort.SortFields.Add2 Key:=Range("B4"), _ SortOn:=xlSortOnCellColor, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("background").Sort .SetRange Range("B4:D10") .Apply End With End Sub 

Na naslednji sliki zaslona je prikazan sortiran nabor podatkov glede na barvo ozadja.

Pojasnilo:

  • V tem primeru smo poimenovali delovni list " ozadje ". V kodi torej vstavimo " ozadje " kot naš ime aktivnega delovnega lista.
  • Določili smo B4 kot ključ in . B4:D10 kot obseg Koda bo razvrstila podatke na podlagi ključa.
  • Ker nismo določili parameter glave , koda se izvaja za privzeto brez glave.
  • Določili smo Naročite na . parameter kot naraščajoče, zato je podatke razvrstil od nižjih do višjih vrednosti. .

Preberite več: Kako razvrstiti po barvi v Excelu (4 merila)

5. Uporaba kode VBA za razvrščanje stolpcev glede na barvo pisave

Z uporabo kode VBA lahko razvrstimo našo zbirko podatkov glede na njihovo barva pisave Najprej moramo barve različnih vrstic za ponazoritev primera.

Uporabite spodnjo kodo za razvrščanje podatkovne množice na podlagi barva pisave.

 Sub SortRangeByFontColor() ActiveWorkbook.Worksheets("fontcolor").Sort.SortFields.Add(Range("B4"), _ xlSortOnFontColor, xlAscending, xlSortNormal).SortOnValue.Color = RGB(0, 0, 0, 0) With ActiveWorkbook.Worksheets("fontcolor").Sort .SetRange Range("B4:D11") .Header = xlYes .Orientation = xlTopToBottom .Apply End With End Sub 

Pojasnilo:

  • V tem primeru smo poimenovali delovni list " fontcolor ". V kodi torej vstavimo " fontcolor " kot naš ime aktivnega delovnega lista.
  • Določili smo B4 kot ključ in . B4:D11 kot obseg Koda bo razvrstila podatke na podlagi ključa.
  • V tem primeru smo določili tudi parameter glave kot xlYes .
  • Tu nastavimo Naročite na . parameter kot naraščajoče, zato je podatke razvrstil od nižjih do višjih vrednosti. .
  • Vrednost SortOn parameter je
  • Spletna stran parameter usmerjenosti ima vrednost xlTopToBottom saj je to obvezno.
  • Barva za razvrščanje je v smislu RGB, ki ima vrednost od 0 na . 255 .

Preberite več: Kako razvrstiti dva stolpca v Excelu, da se ujemata (natančno in delno ujemanje)

6. Spreminjanje orientacije za razvrščanje območja z uporabo programa Excel VBA

Uporaba orientacija lahko spremenimo način razvrščanja podatkov. V tem primeru imamo transponirani naš nabor podatkov za razvrščanje . vodoravno .

V urejevalnik Visual Basic vstavimo naslednjo kodo in jo zaženemo s pritiskom F5.

 Sub Orientation() Range("B4:H6").Sort Key1:=Range("B6"), _ Order1:=xlAscending, _ Orientation:=xlSortRows, _ Header:=xlYes End Sub 

Tukaj smo razvrščeno podatke na podlagi vrstica za starost na spletnem mestu naraščajoče naročite iz levo na . desno . V kodi nastavimo orientacija parameter kot xlSortRows .

Sorodna vsebina: Kako samodejno razvrstiti več stolpcev v Excelu (3 načini)

Stvari, ki si jih je treba zapomniti

  • Spletna stran Parameter SortOn ki smo jih uporabljali za razvrščanje obseg stolpca na podlagi barva ozadja in . barva pisave lahko uporablja samo predmet delovnega lista . Ne moremo ga uporabljati z predmet obsega .
  • Spletna stran Dogodek BeforeDoubleClick razvrsti podatke samo v naraščajoče.

Zaključek

Zdaj vemo, kako razvrstiti območje z uporabo VBA v Excel-u. Upamo, da bi vas to spodbudilo k bolj samozavestni uporabi. Morebitna vprašanja ali predloge ne pozabite postaviti v spodnjem polju za komentarje.

Hugh West je zelo izkušen trener Excela in analitik z več kot 10-letnimi izkušnjami v industriji. Po izobrazbi je diplomirani računovodstvo in finance ter magisterij poslovne administracije. Hugh ima strast do poučevanja in je razvil edinstven pristop k poučevanju, ki ga je enostavno slediti in razumeti. Njegovo strokovno znanje o Excelu je pomagalo na tisoče študentom in strokovnjakom po vsem svetu, da so izboljšali svoje sposobnosti in se izkazali v karieri. Prek svojega bloga Hugh deli svoje znanje s svetom, ponuja brezplačne vadnice za Excel in spletno usposabljanje, ki posameznikom in podjetjem pomaga doseči njihov polni potencial.