Tartalomjegyzék
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-benBevezeté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.