Hogyan rendezhetünk tartományt a VBA használatával az Excelben (6 példa)

  • Ossza Meg Ezt
Hugh West

Ha tudjuk, hogyan lehet tartományt rendezni az Excelben a VBA segítségével, az időt és energiát takarít meg a napi számításaink során. Bár az Excel alapértelmezés szerint biztosít rendezési lehetőséget. A Range.Sort módszer , több paraméterhez is hozzáférhetünk, hogy az adathalmazt a szokásosnál több lehetőséggel rendezhessük.

Gyakorlati munkafüzet letöltése

Töltse le ezt a gyakorlati munkafüzetet, hogy gyakorolhasson, miközben ezt a cikket olvassa.

Rendezési tartomány Excel.xlsm-ben

Bevezetés a Range.Sort utasításba az Excel VBA-ban

Célkitűzés : A cellák adattartományának rendezése.

Szintaxis:

kifejezés .Sort ( Kulcs1 , Rend1 , Key2 , Típus , Rend2 , Key3 , Order3 , Fejléc , OrderCustom , MatchCase , Orientáció , SortMethod , DataOption1 , DataOption2 , DataOption3 )

Itt a kifejezés egy Tartomány objektum, azaz egy cella, egy sor, egy oszlop vagy egy cellakiválasztás.

Érvek:

Biztosítanunk kell három a fő paraméterek a Range.Sort módszer. Ezek...

Kulcs - A cellák tartománya egy vagy több oszlopból, amelyeket rendezni kell.

Megrendelés - Adja meg a rendezési sorrendet, akár növekvő, akár csökkenő.

Fejléc - Megállapítja, hogy a rendezendő oszlopok rendelkeznek-e fejléccel vagy sem.

6 példa az Excel VBA tartomány rendezésére az Excel VBA-ban

Ebben a cikkben adatkészletként egy listát fogunk használni, amely az emberek neveit tartalmazza a születési dátumukkal és életkorukkal együtt. Különböző módszereket fogunk alkalmazni az adatkészlet rendezéséhez. Nézzük át a cikket és gyakoroljuk, hogy elsajátítsuk ezeket a módszereket.

1. Rendezés egy oszloptartományban az Excel VBA használatával

Ebben a példában sort emberek a legrégebbi a címre. legfiatalabb Kövessük a lépéseket, hogy használjuk a Tartomány . Rendezés módszer amely sort a Életkor oszlop a oldalon. csökkenő sorrendben .

Lépések:

  • Menjen a Fejlesztő lap a Excel szalag a címre. kattints a címre. a Visual Basic

  • Ezután válassza a Modul opció a Beszúrás lap hogy megnyisson egy új modul .

Most a kódunkat a sort a Kor oszloptartomány.

1.1 Oszlop fejléccel

Tegye a következő kódot a vizuális kódszerkesztőbe.

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

Sajtó F5 vagy kattintson a Fuss gombot a execute a kódot.

Magyarázat:

A fenti kódban a-

Kifejezés (tartomány objektum)=Tartomány("D4:D11"); a kor oszlop egy fejléc a oldalon. D4 cella és értékek a oldalon. D5:D11.

Key = Range("D4"); a kulcs a oldalon. válogatva.

Order= xlDescending; ahogyan mi is szeretnénk sort értékek a legnagyobb a címre. legalacsonyabb beállítjuk a rendezési sorrend mint ereszkedő.

Fejléc =xlYes; A következő képernyőképen láthatjuk, hogy a adatkészlet van egy fejléc minden egyes oszlopok.

1.2 Fejléc nélküli oszlop

Tegye a következő kódot a vizuális kódszerkesztőbe.

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

Sajtó F5 vagy kattintson a Fuss gombot a execute a kódot.

Magyarázat:

A fenti kódban a-

Kifejezés (tartomány objektum)=Tartomány("D4:D10"); a kor oszlop anélkül, hogy fejléc van értékek a oldalon. D4:D10.

Key = Range("D4"); a kulcs a oldalon. válogatva.

Order= xlDescending; ahogyan mi is szeretnénk sort értékek a legnagyobb a címre. legalacsonyabb beállítjuk a rendezési sorrend mint ereszkedő.

Fejléc =xlNo; A következő képernyőképen láthatjuk, hogy a adatkészlet nincs fejléc.

Kapcsolódó tartalom: Hogyan rendezhetünk oszlopokat az Excelben az adatok keverése nélkül (3 mód)

2. VBA-kód használata az Excel több oszlopos tartományának rendezéséhez az Excelben

A rendezés megjelenítése a több oszlop , szükségünk van arra, hogy módosítsa a címet. a adatkészlet egy kicsit. beillesztett néhány új sorok A módosított adatállományban a sorok 7, 8, és 9 van a ugyanaz értékek a születési dátum és korosztályok de három különböző név . nevek a nem bármely meghatározott sorrendben a felemelkedés vagy a leereszkedés.

Ebben a példában a neveket a következő sorrendbe rendezzük növekvő sorrendben Futtassuk le a következő kódot a Visual Basic szerkesztőprogramban:

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

Magyarázat:

A fenti képernyőképen láthatjuk, hogy a korok a D oszlop a rendezett a oldalon. ereszkedő rend. Hozzáadtuk két további paraméter a korábbi kódunkban.

Key2: =Range("B4") , a kulcs a nevek rendezéséhez.

Order2: =xlAscending , a megrendelés a oldalon. rövidre záró nevek .

Ennek eredményeképpen látjuk, hogy a nevek a oldalon. 7., 8. és 9. sor most betűrendben válogatva felmenő rendelés.

A következő képernyőképen megváltoztattuk a érték a Order2 paraméter a címre. sort a nevek a oldalon. ereszkedő rendelés.

Bővebben: Több oszlop rendezése az Excelben (5 gyors megközelítés)

3. Dupla kattintás a fejlécre az Excel VBA oszloptartományának rendezéséhez

Az Excel alapértelmezett rendezési funkciója nem teszi lehetővé, hogy értékek rendezése egy oszlop dupla kattintás a oszlopfejléc De a VBA kód segítségével ezt meg tudjuk valósítani. Illusztráljuk ezt a funkciót a következő kód alkalmazásával.

 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 End Sub 

Ebben a kódban a BeforeDoubleClick esemény a címre. tiltsa le a szokásos dupla - kattints a címre. ami a szerkesztés Ha ez az esemény fut, ha a cellában a dupla - kattints a címre. bármelyik oszlopcímek rendezi az oszlopadatokat a növekvő sorrendben .

Bővebben: VBA az Excel oszlopok rendezéséhez (4 módszer)

Hasonló olvasmányok:

  • Hogyan adjunk hozzá rendezőgombot az Excelben (7 módszer)
  • Egyedi lista rendezése Excelben (10 hasznos módszer)
  • Hogyan használjuk a Rendezés funkciót az Excel VBA-ban (8 megfelelő példa)
  • Duplikátumok rendezése Excelben (oszlopok és sorok)
  • Véletlenszerű rendezés az Excelben (képletek + VBA)

4. Rendezés oszloptartomány a háttérszín alapján az Excel VBA használatával

Rendezhetünk egy oszlopban lévő cellák tartományát alapú a háttérszín Ehhez a következőkre van szükségünk add a paraméter a nevet viseli. SortOn amely egy value xlSortOnCellColor érték xlSortOnCellColor A rendezés bemutatásához először is különböző háttérszínek a sorok a mi adatkészlet .

Ezután a Visual Basic kódszerkesztőben másolat a következő kódot, és nyomja meg a F5 a futtatásához.

 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 

A következő képernyőképen láthatjuk, hogy a rendezett adathalmaz a háttérszínük alapján.

Magyarázat:

  • Ebben a példában a munkalap " háttér ". Tehát a kódban a " háttér " mint a mi aktív munkalap neve.
  • Megadjuk B4 mint a kulcs és B4:D10 mint a tartomány A kód az adatokat a kulcs alapján rendezi.
  • Mivel nem adtuk meg a fejléc paraméter , a kód az alapértelmezett nincs fejléc.
  • Beállítjuk a megrendelés paraméter mint felfelé, így az adatokat az alacsonyabb értékektől a magasabb értékek felé rendezte. .

Bővebben: Hogyan rendezhetjük szín szerint az Excelben (4 kritérium)

5. Alkalmazza a VBA kódot a sort oszlop tartomány alapján a betűszín alapján

A VBA kód alkalmazásával az adathalmazunkat az alapján tudjuk rendezni, hogy a betűszín Először is, meg kell különböző sorok színezése a példa illusztrálására.

Alkalmazza az alábbi kódot az adathalmaz rendezéséhez a következők alapján betűszín.

 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 Range("B4:D11") .Header = xlYes .Orientation = xlTopToBottom .Apply End With End Sub 

Magyarázat:

  • Ebben a példában a munkalap " betűszín ". Tehát a kódban a " betűszín " mint a mi aktív munkalap neve.
  • Megadjuk B4 mint a kulcs és B4:D11 mint a tartomány A kód az adatokat a kulcs alapján rendezi.
  • Ebben a példában a fejléc paramétert is a következőképpen adtuk meg xlYes .
  • Itt beállítjuk a megrendelés paraméter mint felfelé, így az adatokat az alacsonyabb értékektől a magasabb értékek felé rendezte. .
  • Az érték a SortOn paraméter
  • A orientációs paraméter tartalmazza az értéket xlTopToBottom mivel ez kötelező.
  • Színes a rendezéshez az RGB kifejezéseket kell használni, amelyek értéke a következő értékek között van 0 a címre. 255 .

Bővebben: Hogyan rendezhet két oszlopot az Excelben a mérkőzéshez (mind a pontos, mind a részleges egyezéshez)?

6. A tájolás megváltoztatása a rendezési tartományhoz az Excel VBA használatával

A tájékozódás paraméterrel megváltoztathatjuk az adatok rendezésének módját. Ebben a példában az alábbiakat használjuk átültetett az adatállományunk sort it vízszintesen .

Tegyük be a következő kódot a Visual Basic szerkesztőbe, és nyomjuk meg az F5 billentyűt a futtatáshoz.

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

Itt mi rendezett az adatok alapján korosztály a oldalon. felmenő rendelés a balra a címre. jobbra A kódban beállítjuk a tájékozódás paraméter mint xlSortRows .

Kapcsolódó tartalom: Több oszlop automatikus rendezése az Excelben (3 mód)

Emlékezetes dolgok

  • A SortOn paraméter hogy mi használtuk, hogy sort oszloptartomány alapján háttérszín és betűszín csak egy munkalap objektum Nem használhatjuk egy range objektum .
  • A BeforeDoubleClick esemény az adatokat csak a felfelé.

Következtetés

Most már tudjuk, hogyan lehet tartományt rendezni a VBA segítségével az Excelben. Remélhetőleg ez arra ösztönzi Önt, hogy ezt magabiztosabban használja. Bármilyen kérdés vagy javaslat ne felejtse el, hogy tegye őket az alábbi megjegyzés rovatba.

Hugh West nagy tapasztalattal rendelkező Excel-oktató és elemző, több mint 10 éves tapasztalattal az iparágban. Számvitel és pénzügy szakos alapdiplomát, valamint üzleti adminisztrációból mesterképzést szerzett. Hugh szenvedélye a tanítás, és egyedülálló tanítási megközelítést dolgozott ki, amely könnyen követhető és érthető. Az Excelben szerzett szakértői tudása világszerte több ezer diáknak és szakembernek segített abban, hogy készségeiket és karrierjüket kiválóan teljesítsék. Hugh blogján keresztül megosztja tudását a világgal, ingyenes Excel-oktatóanyagokat és online képzéseket kínálva, hogy segítse az egyéneket és a vállalkozásokat teljes potenciáljuk kibontakoztatásában.