Kuidas sorteerida vahemikku VBA abil Excelis (6 näidet)

  • Jaga Seda
Hugh West

Teadmine, kuidas sorteerida vahemikku VBA abil Excelis, säästab meie igapäevastes arvutustes aega ja vaeva. Kuigi Excel pakub vaikimisi sorteerimisvõimalust. Kasutades funktsiooni Range.Sort meetod , saame juurdepääsu mitmetele parameetritele, et sorteerida andmestikku tavalisest rohkemate võimalustega.

Lae alla praktiline töövihik

Lae alla see harjutusvihik, et seda artiklit lugedes harjutada.

Sort Range in Excel.xlsm

Range.Sort-avalduse tutvustus Excel VBAs

Eesmärk : Lahtrite andmevahemiku sorteerimine.

Süntaks:

väljendus .Sort ( Key1 , Tellimus1 , Key2 , Tüüp , Order2 , Key3 , Order3 , Pealkiri , OrderCustom , MatchCase , Orienteerumine , SortMethod , DataOption1 , DataOption2 , DataOption3 )

Siin on väljendus kujutab endast Range objekt, st lahter, rida, veerg või lahtrite valik.

Argumendid:

Me peame pakkuma kolm peamised parameetrid Range.Sort meetod. Nad on...

Key - Ühe või mitme veeru lahtrite vahemik, mida on vaja sorteerida.

Tellige - Määrake sorteerimisjärjekord kas kasvav või kahanev.

Pealkiri - Deklareerida, kas sorteeritavatel veergudel on päis või mitte.

6 näidet Exceli VBA-s sorteerimisvahemiku sorteerimiseks

Selles artiklis kasutame andmekogumina inimeste nimede nimekirja koos nende sünniaja ja vanusega. Andmekogumi sorteerimiseks rakendame erinevaid meetodeid. Käime artikli läbi ja harjutame nende meetodite omandamist.

1. Sorteerige ühe veeru vahemik Exceli VBA abil

Selles näites me sort inimesed alates vanim aadressile noorim Järgime samme, et kasutada Range . Sorteeri meetod mis sort . Vanuse veerg aadressil kahanevas järjekorras .

Sammud:

  • Minge Arendaja vahekaart aastal Exceli lint aadressile kliki kohta Visual Basic

  • Seejärel valige Mooduli valik alates Sisestage vahekaart avada uus moodul .

Nüüd paneme oma koodi sort . Vanus veergude vahemik.

1.1 Pealkirjaga veerg

Pange järgmine kood visuaalsesse koodiredaktorisse.

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

Press F5 või klõpsake Käivita nuppu täita kood.

Selgitus:

Ülaltoodud koodis paneme-

Väljend (objekt Range)=Range("D4:D11"); . vanuse veerg koos pealkiri aadressil lahter D4 ja väärtused aadressil D5:D11.

Key = Range("D4"); . võti . sorteerimine.

Order= xlDescending; nagu me tahame sort väärtused alates suurim aadressile madalaim me määrame sorteerimisjärjekord nagu laskuv.

Pealkiri =xlYes; Järgmisel ekraanipildil näeme, et andmekogum on pealkiri iga üksiku veerud.

1.2 Pealkirjata veerg

Pange järgmine kood visuaalsesse koodiredaktorisse.

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

Press F5 või klõpsake Käivita nuppu täita kood.

Selgitus:

Ülaltoodud koodis paneme-

Väljend (vahemiku objekt)=Range("D4:D10"); . vanuse veerg ilma pealkiri on väärtused aadressil D4:D10.

Key = Range("D4"); . võti . sorteerimine.

Order= xlDescending; nagu me tahame sort väärtused alates suurim aadressile madalaim me määrame sorteerimisjärjekord nagu laskuv.

Pealkiri =xlNo; Järgmisel ekraanipildil näeme, et andmekogum ei ole pealkiri.

Seotud sisu: Kuidas sorteerida veerge Excelis ilma andmeid segamata (3 võimalust)

2. VBA-koodi kasutamine mitme veeru vahemiku sorteerimiseks Excelis

Näidata sorteerimist mitu veergu peame muuta meie andmekogum natuke. Me sisestatud mõned uus read Muudetud andmekogumis on read 7, 8, ja 9 on sama väärtused sünniaeg ja vanuses kuid kolm erinevat nime . nimed on mitte mis tahes konkreetne järjekord tõusev või langev.

Selles näites järjestame nimed järgmises järjekorras kasvav järjekord . käivitame järgmise koodi visual basic redaktoris:

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

Selgitus:

Ülaltoodud ekraanipildil näeme, et vanused on veerg D on sorteeritud aadressil laskuv tellimus. Me lisasime veel kaks parameetrit meie eelmises koodis.

Key2: =Range("B4") , nimede sorteerimise võti.

Order2: =xlAscending ... tellimus . lühendatud nimed .

Selle tulemusena näeme, et nimed aadressil read 7, 8 ja 9 on nüüd tähestikuliselt sorteeritud sisse tõusev tellimus.

Järgmisel ekraanipildil muutsime me väärtus kohta Order2 parameeter aadressile sort . nimed aadressil laskuv tellimus.

Loe edasi: Kuidas sorteerida mitu veergu Excelis (5 kiiret lähenemist)

3. Topeltklõps päises, et sorteerida Exceli VBA veeru vahemikku

Exceli vaikimisi sorteerimisfunktsioon ei võimalda sorteeri väärtused veeru poolt topeltklõpsamine . veeru pealkiri . Kuid VBA koodi abil saame selle teoks teha. Illustreerime seda funktsionaalsust järgmise koodi abil.

 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 

Selles koodis kasutasime BeforeDoubleClick sündmus aadressile keelata tavaline topelt - kliki mis on käivitada toimetamine raku režiimi. Kui see sündmus on käimas, siis kui me topelt - kliki mis tahes veeru pealkirjad see sorteerib veergude andmed kasvav järjekord .

Loe edasi: VBA Exceli veeru sorteerimiseks (4 meetodit)

Sarnased lugemised:

  • Kuidas lisada sorteerimisnuppu Excelis (7 meetodit)
  • Sorteeri unikaalne nimekiri Excelis (10 kasulikku meetodit)
  • Kuidas kasutada sorteerimisfunktsiooni Excel VBA-s (8 sobivat näidet)
  • Topeltide sorteerimine Excelis (veerud ja read)
  • Juhuslik sorteerimine Excelis (valemid + VBA)

4. Sorteeri veergude vahemik taustavärvi alusel Exceli VBA abil

Saame sorteerida veeru lahtrite vahemikku põhineb nende taustavärv Selleks peame lisada a parameeter nimega SortOn millel on väärtus xlSortOnCellColor Sorteerimise demonstreerimiseks seame kõigepealt erinevad taustavärvid meie ridadesse andmekogum .

Seejärel visual basic koodiredaktoris koopia järgmine kood ja vajutage F5 selle käivitamiseks.

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

Järgmisel ekraanipildil näeme, et sorteeritud andmestik nende taustavärvi alusel.

Selgitus:

  • Selles näites andsime nimeks tööleht " taust ". Niisiis, koodis paneme " taust " nagu meie aktiivse töölehe nimi.
  • Me määrasime B4 kui võti ja B4:D10 kui vahemik Kood sorteerib andmeid võtme alusel.
  • Kuna me ei täpsustanud päise parameeter , kood töötab vaikimisi puudub päis.
  • Me määrasime tellimus parameeter kui tõusev, nii et see sorteeris andmed madalamatest väärtustest kõrgemate väärtuste suunas. .

Loe edasi: Kuidas sorteerida värvi järgi Excelis (4 kriteeriumi)

5. Rakenda VBA-koodi, et sorteerida veergu vahemik fondi värvi alusel

Rakendades VBA koodi, saame sorteerida meie andmekogumi nende alusel kirjatüübi värv Kõigepealt peame värvida erinevaid ridu näite illustreerimiseks.

Rakendage alljärgnevat koodi, et sorteerida andmekogumit järgmiste kriteeriumide alusel kirjavärv.

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

Selgitus:

  • Selles näites andsime nimeks tööleht " fontcolor ". Niisiis, koodis paneme " fontcolor " nagu meie aktiivse töölehe nimi.
  • Me määrasime B4 kui võti ja B4:D11 kui vahemik Kood sorteerib andmeid võtme alusel.
  • Selles näites määrasime ka päise parameetriks xlYes .
  • Siinkohal määrame me tellimus parameeter kui tõusev, nii et see sorteeris andmed madalamatest väärtustest kõrgemate väärtuste suunas. .
  • Väärtus SortOn parameeter on
  • The orientatsiooniparameeter omab väärtust xlTopToBottom kuna see on kohustuslik.
  • Värv sorteerida on RGB mõttes, mille väärtus on vahemikus 0 aadressile 255 .

Loe edasi: Kuidas sorteerida kahte veergu Excelis, et sobitada (nii täpne kui ka osaline vaste)

6. Exceli VBA abil sorteerimisvahemiku orientatsiooni muutmine

Kasutades orienteerumine parameetri abil saame muuta seda, kuidas me tahame andmeid sorteerida. Selles näites on meil transponeeritud meie andmekogumile, et sorteeri see horisontaalselt .

Paneme järgmise koodi visual basic redaktorisse ja vajutame selle käivitamiseks F5.

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

Siin me sorteeritud andmed, mis põhinevad vanuserivi aadressil tõusev tellimus alates vasakule aadressile õigus Koodis määrame orienteerumine parameeter kui xlSortRows .

Seotud sisu: Kuidas automaatselt sorteerida mitu veergu Excelis (3 võimalust)

Asjad, mida meeles pidada

  • The SortOn parameeter mida me kasutasime sort veergude vahemik, mis põhineb taustavärv ja kirjatüübi värv saab kasutada ainult töölehe objekt Me ei saa seda kasutada koos vahemiku objekt .
  • The BeforeDoubleClick sündmus sorteerib andmeid ainult tõusev.

Kokkuvõte

Nüüd teame, kuidas sorteerida vahemikku kasutades VBA-d Excelis. Loodetavasti julgustab see teid seda kindlamalt kasutama. Kui teil on küsimusi või ettepanekuid, ärge unustage neid allpool olevasse kommentaarikasti panna.

Hugh West on suurte kogemustega Exceli koolitaja ja analüütik, kellel on selles valdkonnas üle 10-aastane kogemus. Tal on raamatupidamise ja rahanduse bakalaureusekraad ning ärijuhtimise magistrikraad. Hugh’l on kirg õpetamise vastu ning ta on välja töötanud ainulaadse õpetamisviisi, mida on lihtne järgida ja mõista. Tema Exceli ekspertteadmised on aidanud tuhandetel õpilastel ja spetsialistidel üle maailma oma oskusi parandada ja karjääris silma paista. Oma ajaveebi kaudu jagab Hugh oma teadmisi maailmaga, pakkudes tasuta Exceli õpetusi ja veebikoolitusi, mis aitavad üksikisikutel ja ettevõtetel oma potentsiaali täielikult ära kasutada.