Tartalomjegyzék
Rendezés az Excelben a VBA , akkor kell alkalmazni a Range.Sort Ebben a cikkben megmutatjuk, hogy hogyan lehet az oszlop rendezése Excelben a Range.Sort módszer VBA .
Munkafüzet letöltése
Az ingyenes gyakorló Excel munkafüzetet innen töltheti le.
Oszlop rendezése VBA.xlsm segítségével
Range.Sort módszer az Excel VBA-ban
Range.Sort módszer a VBA egy értéktartományt rendez az Excelben. Itt Tartomány egy objektumváltozó, amely megadja a cellák azon tartományát, amelyet szeretnénk növekvő vagy csökkenő sorrendbe rendezni.
Az alábbiakban azokat a paramétereket ismertetjük, amelyeket ismernie kell, amikor ezzel a módszerrel dolgozik.
Paraméter | Kötelező/ fakultatív | Adattípus | Leírás |
---|---|---|---|
Kulcs | Opcionális | Változat | Megadja azt a tartományt vagy oszlopot, amelynek értékeit rendezni kell. |
Megrendelés | Opcionális | XlSortOrder | Megadja a rendezés sorrendjét.
|
Fejléc | Opcionális | XlYesNoGuess | Megadja, hogy az első sor tartalmaz-e fejléceket vagy sem.
|
4 módszer a VBA végrehajtásában az Excel oszlopok rendezéséhez az Excelben
Ebben a szakaszban megtudhatja, hogyan kell egyetlen oszlop rendezése fejléccel és fejléc nélkül , több oszlop fejléccel és fejléc nélkül és hogyan rendezés egyszerűen az oszlop fejlécére való dupla kattintással Excelben.
1. Beágyazott VBA az Excel egyetlen oszlopának fejléc nélküli rendezéséhez
Ha azt szeretné, hogy egyetlen oszlop rendezése az Excel munkalapon a VBA kódot, majd kövesse az alábbi lépéseket.
Ez a mi oszlopunk, amit a következővel fogunk rendezni VBA kód.
Lépések:
- Sajtó Alt + F11 a billentyűzeten, vagy lépjen a Fejlesztő -> Visual Basic kinyitni Visual Basic szerkesztő .
- A felugró kódablakban a menüsorban kattintson a Beszúrás -> Modul .
- Másolja ki az alábbi kódot, és illessze be a kódablakba.
Sub SortSingleColumnWithoutHeader() Range("B5:B15").Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo End Sub
A kódod most már futtatásra kész.
Tessék,
- Key1:=Range("B5") → Meghatározott B5 hogy a kód tudja, melyik oszlopot kell rendezni.
- Order1:=xlAscending → A sorrendet a következőképpen határozta meg xlAscending ha az oszlopot növekvő sorrendbe akarja rendezni. Ha az oszlopot csökkenő sorrendbe akarja rendezni, akkor írja azt, hogy xlDescending helyette.
- Fejléc:= xlNo → Mivel az oszlopunknak nincs fejléce, ezért azt a xlNo opció.
- Sajtó F5 a billentyűzeten, vagy válassza a menüsorból a Futtatás -> Sub/UserForm futtatása . Egyszerűen csak kattints a kis Play ikon az almenüsorban a makró futtatásához.
Látni fogja, hogy az oszlop most már növekvő sorrendbe rendezve .
Vegyük észre, hogy itt az adattartományt manuálisan definiáltuk a következőképpen Range("B5:B15") .
Ha értékek hozzáadásával vagy törlésével szeretné módosítani az adatokat, akkor a következő kódot implementálhatja, amely automatikusan frissül az adatkészlet cellái alapján.
Sub SortSingleColumnWithoutHeader() Range("B5", Range("B5").End(xlDown)).Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo End Sub
Vegye észre, hogy a tartomány manuális meghatározása helyett a Range("B5:B15") írtuk, Range( "B5", Range("B5"). End(xlDown))) .
Ez az oszlopot az oszlopban lévő utolsó, egymás után következő kitöltött cella alapján rendezi. Ha vannak üres cellák, az adatokat csak az első üres celláig veszi figyelembe.
További információ: VBA a táblázat rendezéséhez Excelben (4 módszer)
2. VBA makró beillesztése egyetlen oszlop rendezéséhez fejléccel
Az előző szakaszban egyetlen oszlopból álló, fejléc nélküli adatkészletünk volt, de most a a oszlop fejléccel .
Ezúttal megtanuljuk, hogyan kell rendezni a VBA makró .
Lépések:
- Ugyanúgy, mint korábban, nyissa meg Visual Basic szerkesztő a Fejlesztő lap és Beillesztés a Modul a kódablakban.
- A kódablakban másolja ki és illessze be a következő kódot.
Sub SortSingleColumnWithHeader() Range("B5:B16").Sort Key1:=Range("B5"), Order1:=xlDescending, Header:=xlYes End Sub
A kódod most már futtatásra kész.
Tessék,
- Key1:=Range("B5") → Meghatározott B5 hogy a kód tudja, melyik oszlopot kell rendezni.
- Order1:=xlDescending → Ezúttal az oszlopot csökkenő sorrendben rendezzük, így a sorrend a következő módon lesz megadva xlDescending .
- Fejléc:= xlYes → Mivel az oszlopunknak ezúttal van fejléce, ezért azt a xlYes opció.
- Fuss ezt a kódot, és megkapja a oszlop a fejléccel csökkenő sorrendbe rendezve .
Bővebben: Hogyan kell rendezni a ListBox-ot a VBA-val az Excelben (Teljes útmutató)
Hasonló olvasmányok:
- IP-címek rendezése Excelben (6 módszer)
- [Megoldott!] Excel rendezés nem működik (2 megoldás)
- Hogyan adjunk hozzá rendezőgombot az Excelben (7 módszer)
- Rendezési tartomány rendezése VBA használatával az Excelben (6 példa)
- Hogyan lehet név szerint rendezni az Excelben (3 példa)
3. VBA makró több oszlop rendezéséhez fejléccel vagy anélkül
Ön is VBA-kóddal több oszlopot rendezhet az adatállományban.
Lépések:
- Amint korábban bemutattuk, a nyitott Visual Basic szerkesztő a Fejlesztő lap és Beillesztés a Modul a kódablakban.
- A kódablakban másolja ki és illessze be a következő kódot.
Sub SortMultipleColumnsWithHeaders() With ActiveSheet.Sort .SortFields.Add Key:=Range("B4"), Order:=xlAscending .SortFields.Add Key:=Range("C4"), Order:=xlAscending .SetRange Range("B4:D15") .Header = xlYes .Apply End With End With End Sub
A kódja most már futtatásra kész.
Tessék,
.SortFields.Add Key:=Range("B4"), Order:=xlAscending
.SortFields.Add Key:=Range("C4"), Order:=xlAscending
Ezzel a két sorral definiáljuk B4-es cella és C4 hogy kiválassza a két oszlop tartozik hozzájuk a oldalon. növekvő sorrendben .
Mivel vannak fejlécek az adatállományunkban, ezért meghatároztuk a Fejléc = xlYes , különben azt írtuk volna Fejléc = xlNo a kódon belül.
- Fuss ezt a kódot, és megkapja a oszlopok fejléccel, növekvő sorrendbe rendezve .
4. Makró az adatok rendezéséhez az Excel fejlécére való dupla kattintással
Ha az adatokat könnyedén szeretné rendezni, csak az alábbiak szerint dupla kattintás a fejlécre , ezt megteheti a VBA kód.
Lépések:
- Kattintson a jobb gombbal a címre. a lapfül .
- A megjelenő opciós listából kattintson a Kód megtekintése .
- Megjelenik a kód ablak, másolja ki a következő kódot és illessze be.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim iRange As Range Dim iCount As Integer iCount = Range("B4:D15").Columns.Count Cancel = False If Target.Row = 4 And Target.Column <= iCount Then Cancel = True Set iRange = Range(Target.Address) Range("B4:D15").Sort Key1:=iRange, Header:=xlYes End If End Sub End Sub
- Mentés a kódot.
- Most menj vissza a kívánt munkalaphoz, és ha kattintson duplán a fejlécekre látni fogja, hogy az oszlopok átrendeződnek.
További információ: Hogyan rendezhet és szűrhet adatokat az Excelben (teljes útmutató)
Emlékezetes dolgok
- Létrehozhat egy nevesített tartományt, és használhatja helyette, amikor a cellahivatkozások tartományát adja át az Rendezés Például, ha egy tartományt akarunk rendezni a A1:A10 , ahelyett, hogy a kódon belül minden egyes alkalommal átadnád, létrehozhatsz egy nevesített tartományt belőle, például " SortRange " és használja a Range.Sort módszer, mint például Range("SortRange") .
- Ha nem biztos benne, hogy az adatállománya rendelkezik-e fejlécekkel, akkor hagyhatja, hogy a rendszer meghatározza azt a xlGuess paraméter.
Következtetés
Ez a cikk megmutatta, hogyan kell az oszlop rendezése Excelben VBA . remélem, hogy ez a cikk nagyon hasznos volt számodra. Nyugodtan kérdezz, ha bármilyen kérdésed van a témával kapcsolatban.