Turinys
Rūšiavimas "Excel" programoje naudojant VBA , reikia taikyti Range.Sort Šiame straipsnyje parodysime, kaip rūšiuoti stulpelį "Excel" programoje su Range.Sort metodas VBA .
Atsisiųsti darbo knygą
Nemokamą "Excel" pratybų sąsiuvinį galite atsisiųsti iš čia.
Rūšiuoti stulpelį naudojant VBA.xlsm
Range.Sort metodas programoje "Excel VBA
Range.Sort metodas VBA rūšiuoja verčių intervalą "Excel" programoje. Čia Diapazonas yra objekto kintamasis, nurodantis ląstelių, kurias norime rūšiuoti didėjančia arba mažėjančia tvarka.
Toliau pateikiami parametrai, kuriuos reikia žinoti dirbant su šiuo metodu.
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 "Excel" stulpelį
Šiame skyriuje sužinosite, kaip rūšiuoti vieną stulpelį su ir be antraštės , keli stulpeliai su antraštėmis ir be jų ir kaip rūšiuoti tiesiog dukart spustelėjus stulpelio antraštę. "Excel" programoje.
1. Įterpkite VBA, kad "Excel" rūšiuotumėte vieną stulpelį be antraštės
Jei norite rūšiuoti vieną stulpelį savo "Excel" darbalapį su VBA kodą, tada atlikite toliau nurodytus veiksmus.
Tai mūsų stulpelis, kurį rūšiuosime VBA kodas.
Ž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 SortSingleColumnWithoutHeader() Range("B5:B15").Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo End Sub
Dabar jūsų kodas paruoštas paleisti.
Čia,
- Key1:=Range("B5") → Nurodyta B5 kad kodas žinotų, kurį stulpelį rūšiuoti.
- Order1:=xlAscending → Nurodyta tvarka xlAtsižvelgiant į norėdami rūšiuoti stulpelį didėjimo tvarka. Jei norite rūšiuoti stulpelį mažėjimo tvarka, rašykite xlMažėjantis vietoj to.
- Antraštė:= xlNe → Kadangi mūsų stulpelis neturi jokios antraštės, todėl nurodėme jį su xlNėra 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 jūsų stulpelis dabar yra surūšiuoti didėjančia tvarka .
Atkreipkite dėmesį, kad čia rankiniu būdu apibrėžėme duomenų intervalą kaip Diapazonas ("B5:B15") .
Jei norite keisti duomenis pridėdami arba ištrindami reikšmes, galite įgyvendinti toliau nurodytą kodą, kuris automatiškai atnaujinamas pagal duomenų rinkinio langelius.
Sub SortSingleColumnWithoutoutHeader() Range("B5", Range("B5").End(xlDown)).Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo End Sub
Atkreipkite dėmesį, kad vietoj to, kad rankiniu būdu apibrėžtumėte diapazoną Diapazonas ("B5:B15") , parašėme, Diapazonas( "B5", Range("B5"). End(xlDown)) .
Taip stulpelis bus surūšiuotas pagal paskutinį iš eilės užpildytą langelį. Jei yra tuščių langelių, duomenys bus vertinami tik iki pirmojo tuščio langelio.
Skaityti daugiau: VBA lentelės rūšiavimas "Excel" programoje (4 metodai)
2. Įterpkite VBA makrokomandą, kad surūšiuotumėte vieną stulpelį su antrašte
Ankstesniame skyriuje turėjome duomenų rinkinį, sudarytą iš vieno stulpelio be antraštės, o dabar turime a stulpelis su antrašte .
Šį kartą sužinosime, kaip jį rūšiuoti naudojant VBA makrokomandos .
Ž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 SortSingleColumnWithHeader() Range("B5:B16").Sort Key1:=Range("B5"), Order1:=xlDescending, Header:=xlYes End Sub
Dabar jūsų kodas paruoštas paleisti.
Čia,
- Key1:=Range("B5") → Nurodyta B5 kad kodas žinotų, kurį stulpelį rūšiuoti.
- Order1:=xlDescending → Šį kartą stulpelį surūšiuosime mažėjančia tvarka, todėl nurodykite tokią tvarką xlMažėjantis .
- Antraštė:= xlYes → Kadangi šį kartą mūsų stulpelyje yra antraštė, todėl ją nurodėme su xlYes galimybė.
- Paleisti šį kodą ir gausite stulpelis, kurio antraštė surūšiuota mažėjančia tvarka .
Skaityti daugiau: Kaip rūšiuoti "ListBox" su "Excel" VBA (išsamus vadovas)
Panašūs skaitiniai:
- Kaip "Excel" programoje rūšiuoti IP adresą (6 metodai)
- [Išspręsta!] "Excel" rūšiavimas neveikia (2 sprendimai)
- Kaip pridėti rūšiavimo mygtuką "Excel" (7 metodai)
- Rūšiuoti diapazoną naudojant VBA programoje "Excel" (6 pavyzdžiai)
- Kaip "Excel" programoje rūšiuoti pagal pavadinimą (3 pavyzdžiai)
3. VBA makrokomanda keliems stulpeliams rūšiuoti su antraštėmis arba be jų
Taip pat galite rūšiuoti kelis duomenų rinkinio stulpelius naudojant VBA kodą.
Ž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 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 Sub
Dabar jūsų kodas paruoštas paleisti.
Čia,
.SortFields.Add Key:=Range("B4"), Order:=xlAscending
.SortFields.Add Key:=Range("C4"), Order:=xlAscending
Šiomis dviem eilutėmis apibrėžiame Ląstelė B4 ir C4 rūšiuoti du su jais susiję stulpeliai svetainėje didėjančia tvarka .
Kadangi mūsų duomenų rinkinyje yra antraščių, nurodėme Antraštė = xlYes kitaip būtume užrašę Antraštė = xlNe kodo viduje.
- Paleisti šį kodą ir gausite stulpeliai su antraštėmis, surūšiuoti didėjančia tvarka .
4. Makrokomanda duomenims rūšiuoti "Excel" programoje dukart spustelėjus antraštę
Jei norite lengvai rūšiuoti duomenis tiesiog pagal dukart spustelėjus ant antraštės , galite tai padaryti naudodami VBA kodas.
Žingsniai:
- Dešiniuoju pelės klavišu spustelėkite apie lapo skirtukas .
- Pasirodžiusiame parinkčių sąraše spustelėkite Peržiūrėti kodą .
- Atsidarys kodo langas, nukopijuokite šį kodą ir įklijuokite jį.
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
- Išsaugoti kodą.
- Dabar grįžkite į dominančią darbo lentelę ir, jei dukart spustelėkite antraštes pamatysite, kad stulpeliai pertvarkomi.
Skaityti daugiau: Kaip rūšiuoti ir filtruoti duomenis programoje "Excel" (išsamios gairės)
Dalykai, kuriuos reikia prisiminti
- Galite sukurti pavadintą diapazoną ir jį naudoti, kai perduodate ląstelių nuorodų diapazoną viduje Rūšiuoti Pavyzdžiui, jei norite rūšiuoti diapazoną A1:A10 , užuot kiekvieną kartą jį perdavę kodo viduje, galite sukurti pavadintą jo intervalą, pvz., " SortRange " ir naudokite jį su Range.Sort metodą, pvz. Kategorijos diapazonas("SortRange") .
- Jei nesate tikri, ar jūsų duomenų rinkinyje yra antraštės, ar ne, galite leisti sistemai tai nustatyti naudodami xlPažymėkite parametras.
Išvada
Šiame straipsnyje parodyta, kaip rūšiuoti stulpelį "Excel" programoje VBA . tikiuosi, kad šis straipsnis jums buvo labai naudingas. Drąsiai klauskite, jei turite klausimų šia tema.