Satura rādītājs
Zināšanas par to, kā šķirot diapazonu, izmantojot VBA programmā Excel, ietaupa laiku un pūles mūsu ikdienas aprēķinos. Lai gan Excel pēc noklusējuma nodrošina šķirošanas iespēju. Izmantojot Range.Sort metode , mēs iegūstam piekļuvi vairākiem parametriem, lai šķirotu datu kopu ar vairāk iespējām nekā parasti.
Lejupielādēt Practice Workbook
Lejupielādējiet šo prakses darba burtnīcu, lai vingrinātos, kamēr lasāt šo rakstu.
Kārtot diapazonu programmā Excel.xlsmIevads par Range.Sort paziņojumu programmā Excel VBA
Mērķis : Šūnu datu diapazona sakārtošana.
Sintakse:
izteiksme .Sort ( Atslēga1 , Pasūtījums1 , Atslēga2 , Tips , Pasūtījums2 , Atslēga3 , Pasūtījums3 , Virsraksts , PasūtītCustom , MatchCase , Orientēšanās , SortMethod , DataOption1 , DataOption2 , DataOption3 )
Šajā gadījumā izteiksme ir Diapazons objektu, t. i., šūnu, rindu, kolonnu vai šūnu izlasi.
Argumenti:
Mums ir jānodrošina trīs galvenie parametri Range.Sort metode. Tie ir...
Galvenais - Šūnu diapazons no vienas vai vairākām kolonnām, kuras mums nepieciešams šķirot.
Pasūtījums - Norādiet šķirošanas secību augošā vai dilstošā secībā.
Virsraksts - Deklarē, vai šķirojamajām kolonnām ir vai nav galvenes.
6 piemēri, lai Excel VBA programmā sakārtotu diapazonu
Šajā rakstā kā datu kopu izmantosim cilvēku vārdu sarakstu ar viņu dzimšanas datumu un vecumu. Datu kopas sakārtošanai izmantosim dažādas metodes. Izlasīsim rakstu un praktiski apgūsim šīs metodes.
1. Viena kolonnas diapazona šķirošana, izmantojot Excel VBA
Šajā piemērā mēs šķirot cilvēki no vecākais uz jaunākais . Izpildīsim soļus, lai izmantotu Diapazons . Atlasīt metode kas šķirot . Vecuma sleja vietnē dilstošā secībā .
Soļi:
- Dodieties uz Izstrādātāja cilne in the Excel lente uz noklikšķiniet uz par Visual Basic
- Pēc tam izvēlieties Moduļa opcija no Ievietot cilni lai atvērtu jauns modulis .
Tagad mēs ievietosim mūsu kodu šķirot . Vecums kolonnu diapazons.
1.1 Kolonna ar galveni
Ievietojiet vizuālajā koda redaktorā šādu kodu.
Sub SortRange() Range("D4:D11").Sort Key1:=Range("D4"), _ Order1:=xlDescending, _ Header:=xlYes End Sub
Preses F5 vai noklikšķiniet uz Palaist pogu, lai izpildīt kodu.
Paskaidrojums:
Iepriekš minētajā kodā mēs ieliekam-
Izteiksme (Range objekts)=Range("D4:D11"); . vecuma sleja ar galvene vietnē šūna D4 un vērtības vietnē D5:D11.
Atslēga = Range("D4"); . atslēga vietnē šķirošana.
Order= xlDescending; kā mēs vēlamies šķirot vērtības no lielākais uz zemākais mēs iestatām šķirošanas secība kā lejupejošā secībā.
Header =xlYes; Nākamajā ekrānšāviņā redzams, ka datu kopa ir galvene par katru no kolonnas.
1.2 Kolonna bez galvenes
Ievietojiet vizuālajā koda redaktorā šādu kodu.
Sub SortRange() Range("D4:D10").Sort Key1:=Range("D4"), _ Order1:=xlDescending, _ Header:=xlNo End Sub
Spiediet F5 vai noklikšķiniet uz Palaist pogu, lai izpildīt kodu.
Paskaidrojums:
Iepriekš minētajā kodā mēs ieliekam-
Izteiksme (Range objekts)=Range("D4:D10"); . vecuma sleja bez galvene ir vērtības vietnē D4:D10.
Atslēga = Range("D4"); . atslēga vietnē šķirošana.
Order= xlDescending; kā mēs vēlamies šķirot vērtības no lielākais uz zemākais mēs iestatām šķirošanas secība kā lejupejošā secībā.
Header =xlNr; Nākamajā ekrānšāviņā redzams, ka datu kopa nav virsraksts.
Saistīts saturs: Kā šķirot kolonnas programmā Excel, nesajaucot datus (3 veidi)
2. VBA koda izmantošana, lai šķirotu vairāku kolonnu diapazonu programmā Excel
Lai parādītu šķirošanu vairākas kolonnas , mums ir nepieciešams modificēt mūsu datu kopa nedaudz. Mēs ievietots daži jauns rindas Grozītajā datu kopā rindas 7, 8, un 9 ir tas pats vērtības dzimšanas datums un vecums bet trīs dažādi nosaukumi . vārdi ir ne jebkurā īpašs pasūtījums augšupejošu vai lejupejošu.
Šajā piemērā mēs sakārtosim nosaukumus šādi. augošā secībā . Palaidīsim šādu kodu Visual Basic redaktorā:
Sub SortRange() Range("B4:D12").Sort Key1:=Range("D4"), _ Order1:=xlDescending, _ Key2:=Range("B4"), _ Order2:=xlAscending, _ Header:=xlYes End Sub
Paskaidrojums:
Iepriekš redzamajā ekrānšāviņas attēlā redzams, ka vecums D sleja ir sakārtoti vietnē lejupejošais rīkojums. Mēs pievienojām vēl divi parametri mūsu iepriekšējā kodā.
Atslēga2: =Range("B4") , taustiņu, lai šķirotu nosaukumus.
Kārtība2: =xlAscending , un pasūtījums vietnē īsināt nosaukumus .
Rezultātā mēs redzam, ka vārdi vietnē 7., 8. un 9. rinda tagad ir alfabētiski sakārtoti augšupejošais pasūtījums.
Nākamajā ekrānšāviņā mēs mainījām vērtība no Order2 parametrs uz šķirot . vārdi vietnē lejupejošais pasūtījums.
Lasīt vairāk: Kā programmā Excel sakārtot vairākas kolonnas (5 ātras pieejas)
3. Dubultklikšķis uz galvenes, lai sakārtotu kolonnu diapazonu programmā Excel VBA
Excel noklusējuma šķirošanas funkcija neļauj šķirot vērtības kolonnas ar dubultklikšķinot uz . kolonnas virsraksts . Bet, izmantojot VBA kodu, mēs to varam īstenot. Ilustrēsim šo funkcionalitāti, izmantojot šādu kodu.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim KeyRange As Range Dim ColCount As Integer 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
Šajā kodā mēs izmantojām Notikums BeforeDoubleClick uz atslēgt parasto dubulto - noklikšķiniet uz kas ir sākt rediģēšana šūnas režīmu. Ja šis notikums darbojas, ja mēs dubultā - noklikšķiniet uz jebkurā no kolonnu virsraksti tas sakārto kolonnas datus augošā secībā .
Lasīt vairāk: VBA, lai šķirotu kolonnu programmā Excel (4 metodes)
Līdzīgi lasījumi:
- Kā pievienot šķirošanas pogu programmā Excel (7 metodes)
- Unikālu sarakstu šķirošana programmā Excel (10 noderīgas metodes)
- Kā lietot šķirošanas funkciju programmā Excel VBA (8 piemēroti piemēri)
- Dubultdublikātu šķirošana programmā Excel (kolonnas un rindas)
- Izlases kārtošana programmā Excel (formulas + VBA)
4. Kolonnu diapazona šķirošana, pamatojoties uz fona krāsu, izmantojot Excel VBA
Mēs varam sakārtot šūnu diapazonu slejā pamatojoties uz par to fona krāsa Lai to izdarītu, mums ir pievienot a parametrs ar nosaukumu SortOn kam ir vērtība xlSortOnCellColor Lai demonstrētu šķirošanu, vispirms iestatām dažādus fona krāsas uz rindām mūsu datu kopa .
Pēc tam vizuālā pamata koda redaktorā kopēt šādu kodu un nospiediet F5 lai to palaistu.
Sub SortRangeByBackgroundColor() ActiveWorkbook.Worksheets("background").Sort.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
Tālāk redzamajā ekrānšāviņā ir redzams sakārtota datu kopa pamatojoties uz to fona krāsu.
Paskaidrojums:
- Šajā piemērā mēs nosaucām darba lapa " fons ". Tātad kodā mēs ievietojam " fons " kā mūsu aktīvās darblapas nosaukums.
- Mēs iestatām B4 kā atslēga un B4: D10 kā diapazons . Kods sakārto datus, pamatojoties uz atslēgu.
- Tā kā mēs nenorādījām galvenes parametrs , kods darbojas pēc noklusējuma nav galvenes.
- Mēs iestatām pasūtījums parametru kā augošā virzienā, tā sakārtoja datus no zemākas uz augstāku vērtību. .
Lasīt vairāk: Kā programmā Excel šķirot pēc krāsas (4 kritēriji)
5. Piemērot VBA kodu, lai šķirotu kolonnu diapazonu, pamatojoties uz fonta krāsu
Pielietojot VBA kodu, mēs varam sakārtot datu kopu, pamatojoties uz to. fonta krāsa . Pirmkārt, mums ir nepieciešams krāsot dažādas rindas lai ilustrētu piemēru.
Piemērojiet tālāk norādīto kodu, lai sakārtotu datu kopu, pamatojoties uz fonta krāsa.
Sub SortRangeByFontColor() ActiveWorkbook.Worksheets("fontcolor").Sort.Sort.SortFields.Add(Range("B4"), _ xlSortOnFontColor, xlAscending, xlSortNormal).SortOnValue.Color = RGB(0, 0, 0, 0) Ar ActiveWorkbook.Worksheets("fontcolor").Sort .SetRange Range("B4:D11") .Header = xlYes .Orientation = xlTopToBottom .Apply End With End Sub
Paskaidrojums:
- Šajā piemērā mēs nosaucām darba lapa " fontcolor ". Tātad kodā mēs ievietojam " fontcolor " kā mūsu aktīvās darblapas nosaukums.
- Mēs iestatām B4 kā atslēga un B4:D11 kā diapazons . Kods sakārto datus, pamatojoties uz atslēgu.
- Šajā piemērā mēs norādījām arī galvenes parametru kā xlYes .
- Šeit mēs iestatām pasūtījums parametru kā augošā virzienā, tā sakārtoja datus no zemākas uz augstāku vērtību. .
- Vērtība SortOn parametrs ir
- Portāls orientācijas parametrs ir vērtība xlTopToBottom jo tas ir obligāti.
- Krāsa šķirot pēc RGB izteiksmē, kam ir vērtība no 0 uz 255 .
Lasīt vairāk: Kā programmā Excel sakārtot divas kolonnas, lai tās atbilstu (gan precīza, gan daļēja atbilstība)
6. Orientācijas maiņa šķirot diapazonu, izmantojot Excel VBA
Izmantojot orientēšanās parametru, mēs varam mainīt veidu, kādā vēlamies šķirot datus. Šajā piemērā mums ir. transponēts mūsu datu kopu, lai šķirot tā horizontāli .
Ievietojam Visual Basic redaktorā šādu kodu un nospiežam F5, lai to palaistu.
Sub Orientation() Range("B4:H6").Sort Key1:=Range("B6"), _ Order1:=xlAscending, _ Orientation:=xlSortRows, _ Header:=xlYes End Sub
Šeit mēs sakārtoti datus, pamatojoties uz vecuma rinda vietnē augšupejošais pasūtījums no pa kreisi uz pa labi . Kodā mēs iestatām orientēšanās parametru kā xlSortRows .
Saistīts saturs: Kā automātiski šķirot vairākas Excel kolonnas (3 veidi)
Lietas, kas jāatceras
- Portāls SortOn parametrs ko mēs izmantojām, lai šķirot kolonnu diapazons, pamatojoties uz fona krāsa un fonta krāsa var izmantot tikai darblapas objekts . Mēs nevaram to izmantot ar diapazona objekts .
- Portāls Notikums BeforeDoubleClick šķiro datus tikai augošā virzienā.
Secinājums
Tagad mēs zinām, kā sakārtot diapazonu, izmantojot VBA programmā Excel. Cerams, ka tas mudinās jūs to izmantot pārliecinošāk. Jebkādi jautājumi vai ieteikumi neaizmirstiet tos ievietot komentāru lodziņā zemāk.