INHOUDSOPGAWE
Om te weet hoe om reeks met VBA in Excel te sorteer, bespaar tyd en moeite in ons daaglikse berekeninge. Alhoewel Excel by verstek 'n sorteerfasiliteit bied. Deur die Range.Sort metode te gebruik, kry ons toegang tot verskeie parameters om 'n datastel met meer opsies as gewoonlik te sorteer.
Laai Practice Workbook af
Laai hierdie oefenwerkboek af om te oefen terwyl jy hierdie artikel lees.
Sorteer reeks in Excel.xlsm
Inleiding tot die Range.Sort Statement in Excel VBA
Doelwit : Om 'n reeks seldata te sorteer.
Sintaksis:
uitdrukking . Sorteer ( Sleutel1 , Orde1 , Sleutel2 , Type , Bestelling2 , Sleutel3 , Bestelling3 , Opskrif , BestellingCustom , MatchCase , Oriëntasie , Sorteermetode , Data-opsie1 , Data-opsie2 , Data-opsie3 )
Hier verteenwoordig die uitdrukking 'n Reik voorwerp, dit wil sê 'n sel, 'n ry, 'n kolom of 'n seleksie van selle.
Argumente:
Ons moet drie hoofparameters verskaf vir die Range.Sort metode. Hulle is-
Sleutel – Die reeks selle van enkele of veelvuldige kolomme wat ons moet sorteer.
Orde – Spesifiseer die sorteervolgorde óf stygend of dalend.
Opskrif – Verklaar of die kolomme wat gesorteer moet word 'n kopskrif het of nie.
6 Voorbeelde om reeks in Excel VBA te sorteer
Inhierdie artikel, as 'n datastel, sal ons 'n lys van mense se name met hul geboortedatum en ouderdom gebruik. Ons sal verskillende metodes toepas om die datastel te sorteer. Kom ons gaan deur die artikel en oefen om hierdie metodes te bemeester.
1. Sorteer enkelkolomreeks deur gebruik te maak van Excel VBA
In hierdie voorbeeld sal ons mense van oudste tot jongste sorteer . Kom ons volg die stappe om die Reik te gebruik. Sorteer metode wat die Ouderdomkolom in <1 sal sorteer>dalende volgorde .
Stappe:
- Gaan na die Ontwikkelaaroortjie in die Excel-lint om klik op die Visual Basic
- Kies dan die Module-opsie vanaf die Insert-oortjie om 'n nuwe module oop te maak.
Nou plaas ons ons kode na sorteer die Ouderdom -kolomreeks.
1.1 Kolom met Kop
Sit die volgende kode in die visuele koderedigeerder.
1252
Druk F5 of klik die Run -knoppie om die kode uit te voer.
Verduideliking:
In die bogenoemde kode plaas ons-
Expression (Range object)=Range(“D4:D11”); die ouderdomskolom met 'n opskrif in sel D4 en waardes in D5:D11.
Sleutel = Range(“D4”); die sleutel vir sortering.
Orde= xlDescending; soos ons waardes wil sorteer van grootste tot laagste stel ons die sorteervolgorde in as dalend.
Opskrif =xlJa; In die volgende skermkiekie kan ons sien dat die datastel 'n het kop vir elk van die kolomme.
1.2 Kolom sonder kop
Sit die volgende in kode in die visuele kode-redigeerder.
8547
Druk F5 of klik die Run -knoppie om uit te voer die kode.
Verduideliking:
In die bogenoemde kode sit ons-
Expression (Range object)=Range(“D4) :D10”); die ouderdomskolom sonder 'n opskrif het waardes in D4:D10.
Sleutel = Range(“D4”); die sleutel vir sortering.
Orde= xlDescending; soos ons waardes van grootste tot laagste wil sorteer, stel ons die sorteervolgorde as dalend.
Header =xlNo; In die volgende skermkiekie kan ons sien dat die -datastel geen kopskrif het nie.
Verwante inhoud: Hoe om kolomme in Excel te sorteer sonder om data te meng (3 maniere)
2. Gebruik VBA-kode om veelvuldige kolomreeks in Excel te sorteer
Om sortering in veelvuldige kolomme te wys, moet ons wysig ons datastel 'n bietjie. Ons het ingevoeg 'n paar nuwe rye . In die gewysigde datastel het rye 7, 8, en 9 dieselfde waardes vir die geboortedatum en ouderdomme maar drie verskillende name . Hierdie name is nie in enige spesifieke volgorde nie van stygend of dalend.
In hierdie voorbeeld sal ons die name in stygende volgorde orden. Kom ons voer die volgende kode in die visuele basiese redigeerder uit:
3378
Verduideliking:
In die bogenoemde skermkiekie, kan ons sien dat die ouderdomme in kolom D gesorteer is in dalende volgorde. Ons het nog twee parameters in ons vorige kode bygevoeg.
Key2: =Range(“B4”) , die sleutel om name te sorteer.
Orde2: =xlStygend , die volgorde vir kortname .
Gevolglik sien ons die name in rye 7, 8 en 9 is nou alfabeties gesorteer in stygende volgorde.
In die volgende skermkiekie het ons die verander waarde van die Order2 parameter om die name in dalende volgorde te sorteer .
Lees meer: Hoe om veelvuldige kolomme in Excel te sorteer (5 vinnige benaderings)
3. Dubbelklik op die kop om kolomreeks in Excel VBA te sorteer
Excel se verstek sorteerkenmerk laat nie toe om waardes van 'n kolom volgens <1 te sorteer nie>dubbelklik op die kolomkop . Maar met behulp van VBA-kode kan ons dit laat gebeur. Kom ons illustreer hierdie funksionaliteit deur die volgende kode toe te pas.
2826
In hierdie kode het ons die BeforeDoubleClick-gebeurtenis gebruik om die gewone dubbel – klik<2 te deaktiveer> wat is om die redigeer modus van die sel te begin. Met hierdie geleentheidloop, as ons dubbel – klik op enige van die kolomopskrifte sorteer dit die kolomdata in stygende volgorde .
Lees meer: VBA om kolom in Excel te sorteer (4 metodes)
Soortgelyke lesings:
- Hoe om sorteerknoppie in Excel by te voeg (7 metodes)
- Sorteer unieke lys in Excel (10 nuttige metodes)
- Hoe om sorteerfunksie in Excel VBA te gebruik (8 geskikte voorbeelde)
- Sorteer duplikate in Excel (kolomme en rye)
- Ewekansige sorteer in Excel ( Formules + VBA)
4. Sorteer kolomreeks gebaseer op agtergrondkleur deur gebruik te maak van Excel VBA
Ons kan 'n reeks selle in 'n kolom gegrond op hul agtergrondkleur
Dan in die visuele basiese koderedigeerder kopieer die volgende kode en druk F5 om dit uit te voer.
2305
In die volgende skermkiekie kan ons die gesorteerde datastel gegrond sien op hul agtergrondkleur.
Verduideliking:
- In hierdie voorbeeld het ons die werkblad <2 genoem>“ agtergrond ”. Dus, in die kode plaas ons " agtergrond " as ons aktiewe werkbladnaam.
- Ons stel B4 as die sleutel en B4:D10 as die reeks . Die kode sal data op grond van die sleutel sorteer.
- Aangesien ons nie die kopparameter gespesifiseer het nie, loop die kode vir die verstek geen kopskrif nie.
- Ons het die orde parameter as oplopend gestel, so dit het die data van laer na hoër waardes gesorteer .
Lees meer: Hoe om volgens kleur in Excel te sorteer (4 kriteria)
5. Pas VBA-kode toe om kolomreeks te sorteer op grond van lettertipekleur
Deur VBA-kode toe te pas, kan ons ons datastel sorteer op grond van hul lettertipekleur . Eerstens moet ons verskillende rye kleur om die voorbeeld te illustreer.
Pas die kode hieronder toe om die datastel gebaseer op lettertipekleur te sorteer.
7030
Verduideliking:
- In hierdie ons het byvoorbeeld die werkblad “ fontkleur ” genoem. Dus, in die kode plaas ons " fontcolor " as ons aktiewe werkbladnaam.
- Ons stel B4 as die sleutel en B4:D11 as die reeks . Die kode sal data op grond van die sleutel sorteer.
- In hierdie voorbeeld het ons ook die opskrifparameter gespesifiseer as xlJa .
- Hier stel ons die volgorde parameter as stygend, so dit het die data van laer na hoër waardes gesorteer .
- Die waarde van die SorteerOp parameter is
- Die oriëntasieparameter hou die waarde xlTopToBottom aan aangesien dit verpligtend is.
- Kleur om op te sorteer is in RGB-terme wat het 'n waardevan 0 tot 255 .
Lees meer: Hoe om twee kolomme in Excel te sorteer om te pas (albei presies en gedeeltelike wedstryd)
6. Verander oriëntasie om reeks te sorteer met behulp van Excel VBA
Deur die oriëntasie parameter te gebruik, kan ons die manier verander waarop ons data wil sorteer. In hierdie voorbeeld het ons ons datastel getransponeer om dit horisontaal te sorteer.
Kom ons plaas die volg kode in die visuele basiese redigeerder en druk F5 om dit te laat loop.
4780
Hier het ons die data gesorteer op grond van die ouderdomsry in stygende volgorde van links na regs . In die kode stel ons die oriëntasie parameter as xlSortRows .
Verwante inhoud: Hoe om veelvuldige kolomme outomaties in Excel te sorteer (3 Maniere)
Dinge om te onthou
- Die SortOn-parameter wat ons gebruik het om te sorteer kolomreeks gebaseer op agtergrondkleur en fontkleur kan slegs deur 'n werkbladobjek gebruik word. Ons kan dit nie met 'n reeksvoorwerp gebruik nie.
- Die BeforeDoubleClick-gebeurtenis sorteer data net in oplopend.
Gevolgtrekking
Nou weet ons hoe om reeks met VBA in Excel te sorteer. Hopelik sal dit jou aanmoedig om dit meer selfversekerd te gebruik. Enige vrae of voorstelle moenie vergeet om dit in die kommentaarblokkie hieronder te plaas nie.