Turinys
Įgyvendinti VBA makrokomandos yra veiksmingiausias, greičiausias ir saugiausias būdas atlikti bet kokią operaciją "Excel" programoje. Šiame straipsnyje parodysime, kaip rūšiuoti lentelę "Excel" programoje su VBA .
Atsisiųsti darbo knygą
Nemokamą "Excel" pratybų sąsiuvinį galite atsisiųsti iš čia.
Rūšiuoti lentelę naudojant VBA.xlsm
Ką reikia žinoti prieš įgyvendinant VBA, kad "Excel" lentelėje būtų galima rūšiuoti
Yra keletas parametrų, kuriuos tenka dažnai naudoti dirbant su Rūšiuoti metodas VBA . Taigi čia aptarsime kai kuriuos parametrus, kad galėtumėte susipažinti su jais rašydami kodą.
Parametras | Privalomas / pasirenkamas | Duomenų tipas | Aprašymas |
---|---|---|---|
Pagrindinis | Pasirinktinai | Variantas | Nurodo intervalą arba stulpelį, kurio reikšmės turi būti rūšiuojamos. |
Užsisakykite | Pasirinktinai | XlSortOrder | Nurodo, kokia tvarka bus atliekamas rūšiavimas.
|
Antraštė | Pasirinktinai | XlYesNoGuess | Nurodo, ar pirmoje eilutėje yra antraštės, ar ne.
|
4 VBA įgyvendinimo metodai rūšiuoti lentelę "Excel" programoje
Šiame skyriuje bus parodyta, kaip rūšiuoti "Excel" lenteles atsižvelgiant į vertė, spalvos, piktogramos ir keli stulpeliai su VBA kodas.
1. Įterpkite VBA, norėdami "Excel" programoje rūšiuoti lentelę pagal reikšmę
Nagrinėdami šį pavyzdį surūšiuokite šią lentelę pagal reikšmes yra Markas stulpelyje mažėjančia tvarka.
Žingsniai:
- Paspauskite Alt + F11 klaviatūroje arba eikite į skirtuką Programuotojas -> "Visual Basic atidaryti "Visual Basic" redaktorius .
- Iššokančiame kodo lange meniu juostoje spustelėkite Insert -> Modulis .
- Nukopijuokite šį kodą ir įklijuokite jį į kodo langą.
Sub SortTableValue() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTBL") Set iColumn = Range("SortTBL[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn, SortOn:=xlSortOnValues, Order:=xlDescending .Header = xlYes .Apply End With End Sub
Dabar jūsų kodas paruoštas paleisti.
Čia,
- SortTBL → Nurodytas lentelės pavadinimas.
- SortTBL[Žymos] -> Nurodytas rūšiuojamos lentelės stulpelio pavadinimas.
- Key1:=iColumn → Nurodykite stulpelių intervalą, kad kodas žinotų, kurį lentelės stulpelį rūšiuoti.
- Order1:=xlDescending → Nurodyta tvarka xlMažėjantis norėdami rūšiuoti stulpelį mažėjančia tvarka. Jei norite rūšiuoti stulpelį didėjančia tvarka, rašykite xlAtsižvelgiant į vietoj to.
- Antraštė:= xlYes → Kadangi šios lentelės stulpelis turi antraštę, todėl ją nurodėme su xlYes galimybė.
- Paspauskite F5 klaviatūroje arba meniu juostoje pasirinkite Run -> Run Sub/UserForm Taip pat galite tiesiog spustelėti maža piktograma "Play submeniu juostoje, kad paleistumėte makrokomandą.
Pamatysite, kad lentelės stulpelis dabar yra surūšiuoti mažėjančia tvarka .
Skaityti daugiau: Kaip "Excel" programoje rūšiuoti duomenis pagal vertę (5 paprasti metodai)
2. Įterpkite VBA makrokomandą, kad rūšiuotumėte lentelę pagal kelis stulpelius
Taip pat galite rūšiuoti lentelę pagal kelis stulpelius "Excel" programoje su VBA Makro.
Iš pirmiau pateiktos lentelės surūšiuosime stulpelius Pavadinimas ir Departamentas didėjančia tvarka.
Žingsniai:
- Kaip ir anksčiau, atidarykite "Visual Basic" redaktorius iš Kūrėjas skirtukas ir Įdėkite a Modulis kodo lange.
- Kodo lange nukopijuokite ir įklijuokite šį kodą.
Sub SortTable() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("TableValue") Set iColumn1 = Range("TableValue[Name]") Set iColumn2 = Range("TableValue[Department]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn1, Order:=xlAscending .SortFields.Add Key:=iColumn2, Order:=xlAscending.Header = xlYes .Apply End With End Sub
Dabar jūsų kodas paruoštas paleisti.
Čia,
- TableValue → Nurodytas lentelės pavadinimas.
- TableValue[Name] -> Nurodytas pirmasis rūšiuojamos lentelės stulpelio pavadinimas.
- TableValue[Department] -> Nurodytas antrojo rūšiuojamos lentelės stulpelio pavadinimas.
- Key1:=iColumn1 → Nurodykite stulpelių intervalą, kad kodas žinotų, jog reikia rūšiuoti pirmąjį lentelės stulpelį.
- Key1:=iColumn2 → Nurodykite stulpelių intervalą, kad kodas žinotų, jog reikia rūšiuoti antrąjį lentelės stulpelį.
- Order1:=xlAscending → Nurodyta tvarka xlAtsižvelgiant į norėdami rūšiuoti stulpelį mažėjimo tvarka. Jei norite stulpelį rūšiuoti mažėjimo tvarka, rašykite xlMažėjantis vietoj to.
- Antraštė:= xlYes → Kadangi šios lentelės stulpeliai turi antraštes, mes nurodėme juos su xlYes galimybė.
- Paleisti šį kodą ir gausite abu surūšiuoti lentelės stulpeliai didėjančia tvarka.
Skaityti daugiau: Kaip automatiškai rūšiuoti kelis "Excel" stulpelius (3 būdai)
Panašūs skaitiniai
- Kaip rūšiuoti unikalų sąrašą "Excel" programoje (10 naudingų metodų)
- Rūšiuoti masyvą naudojant "Excel VBA" (didėjančia ir mažėjančia tvarka)
- Kaip rūšiuoti ir filtruoti duomenis "Excel" programoje (išsamios gairės)
- "Excel" automatinis rūšiavimas pasikeitus duomenims (9 pavyzdžiai)
- Atsitiktinis rūšiavimas programoje "Excel" (formulės + VBA)
3. Įgyvendinkite makrokomandą, kad surūšiuotumėte lentelę pagal ląstelių spalvą programoje "Excel
Taip pat galite rūšiuoti lentelę pagal langelio spalvą kad jame yra.
Naudodami pirmiau pateiktą lentelę kaip pavyzdį, parodysime, kaip ją rūšiuoti pagal spalvas, esančias šioje lentelėje.
Žingsniai:
- Kaip jau buvo parodyta anksčiau, atviras "Visual Basic" redaktorius iš Kūrėjas skirtukas ir Įdėkite a Modulis kodo lange.
- Kodo lange nukopijuokite ir įklijuokite šį kodą.
Sub SortTableColor() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTable") Set iColumn = Range("SortTable[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(248, 203, 173) .SortFields.Add(Key:=iColumn,Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(255, 217, 102) .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(198, 224, 180) .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(180, 198, 231) .Header = xlYes .Apply End With End Sub
Dabar jūsų kodas paruoštas paleisti.
Čia RGB kodus, kuriuos pateikėme, galite rasti jį arba bet kurį kitą RGB norimą kodą, vadovaudamiesi toliau pateiktu gifu.
- Tiesiog spustelėkite spalvotas langelis .
- Į Pagrindinis skirtuką, spustelėkite rodyklė šalia Užpildymo spalva tada pasirinkite Daugiau spalvų . Pamatysite RGB kodai Pasirinktinis pasirodė skirtukas Spalvos iššokantis langas.
- Paleisti šį kodą ir jūsų lentelė bus surūšiuoti pagal spalvas .
Skaityti daugiau: Kaip "Excel" rūšiuoti pagal spalvą (4 kriterijai)
4. Taikykite VBA, kad surūšiuotumėte "Excel" lentelę pagal piktogramą
Tarkime, kad duomenų rinkinio lentelėje yra piktogramos, kad būtų geriau skaitoma. Galite rūšiuoti lentelę pagal piktogramas "Excel" programoje su VBA Makro.
Pažvelkite į pirmiau pateiktą duomenų rinkinį. Čia lentelėje šalia skaičių reikšmių yra piktogramos Žymos stulpelius, kad galėtume suprasti, kurio mokinio rezultatai yra geri, blogi ar vidutiniai.
Atkreipkite dėmesį, kad jei nežinote, kaip įterpti piktogramą į ląstelę, galite tai padaryti tiesiog naudodami Sąlyginis formatavimas "Excel" funkcija.
- Pasirinkite visą diapazoną arba stulpelį.
- Eikite į Sąlyginis formatavimas -> Ikonų rinkiniai . Tada pasirinkite norimus piktogramų rinkinius iš šios parinkties.
Žingsniai į rūšiuoti lentelę pagal piktogramas pateikiami toliau.
Žingsniai:
- Atviras "Visual Basic" redaktorius iš Kūrėjas skirtukas ir Įdėkite a Modulis kodo lange.
- Kodo lange nukopijuokite ir įklijuokite šį kodą.
Sub SortTableIcon() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("IconTable") Set iColumn = Range("IconTable[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(1) .SortFields.Add(Key:=iColumn,Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(2) .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(3) .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(4) .SortFields.Add(Key:=iColumn,Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(5) .Header = xlYes .Apply End With End Sub
Dabar jūsų kodas paruoštas paleisti.
Čia,
- xl5Arrows -> Pasirinkome 5 strėlių rinkinys iš parinkties Sąlyginis formatavimas .
- Prekė (1) -> Nurodyta pirmasis rodyklės piktogramos tipas.
- Elementas (2) -> Nurodyta antrasis rodyklės piktogramos tipas.
- Elementas (3) -> Nurodyta trečiasis rodyklės piktogramos tipas.
- Elementas (4) -> Nurodyta ketvirtoji rodyklės piktogramos tipas.
- Elementas (5) -> Nurodyta penktasis rodyklės piktogramos tipas.
- Paleisti šis kodas ir lentelė bus surūšiuoti pagal piktogramas .
Skaitykite daugiau: Kaip automatiškai rūšiuoti lentelę "Excel" (5 metodai)
Išvada
Šiame straipsnyje parodyta, kaip rūšiuoti lentelę "Excel" programoje VBA . tikiuosi, kad šis straipsnis jums buvo labai naudingas. Drąsiai klauskite, jei turite klausimų šia tema.