Sisällysluettelo
Lajittelu Excelissä VBA , sinun on sovellettava Range.Sort Tässä artikkelissa näytämme sinulle, miten voit tehdä lajittele sarake Excelissä Range.Sort menetelmä VBA .
Lataa työkirja
Voit ladata ilmaisen harjoitus-Excel-työkirjan täältä.
Lajittele sarake VBA.xlsm:n avulla
Range.Sort-menetelmä Excel VBA:ssa
Range.Sort menetelmä VBA lajittelee arvoaluetta Excelissä. Täällä Valikoima on objektimuuttuja, joka määrittelee solualueen, jonka halutaan lajitella nousevaan tai laskevaan järjestykseen.
Alla on lueteltu parametrit, jotka sinun on tiedettävä, kun käytät tätä menetelmää.
Parametri | Pakollinen/ Valinnainen | Tietotyyppi | Kuvaus |
---|---|---|---|
Avain | Valinnainen | Vaihtoehto | Määrittää alueen tai sarakkeen, jonka arvot lajitellaan. |
Tilaa | Valinnainen | XlSortOrder | Määrittää järjestyksen, jossa lajittelu suoritetaan.
|
Otsikko | Valinnainen | XlYesNoGuess | Määrittää, sisältääkö ensimmäinen rivi otsikot vai ei.
|
4 menetelmää VBA: n toteuttamisessa Excelin sarakkeen lajittelemiseksi Excelissä
Tässä osassa opit, miten lajitella yksittäinen sarake otsikon kanssa ja ilman otsikkoa , useita sarakkeita otsikoilla ja ilman otsikoita ja miten lajitella vain kaksoisnapsauttamalla sarakkeen otsikkoa. Excelissä.
1. Upota VBA lajitella yksittäinen sarake ilman otsikkoa Excelissä.
Jos haluat lajitella yksittäinen sarake Excel-taulukkosi kanssa VBA koodi ja seuraa sitten alla olevia ohjeita.
Tämä on sarakkeemme, jonka lajittelemme VBA koodi.
Vaiheet:
- Paina Alt + F11 näppäimistöllä tai siirry välilehdelle Kehittäjä -> Visual Basic avata Visual Basic Editor .
- Valitse ponnahdusikkunan valikkoriviltä seuraava vaihtoehto Lisää -> Moduuli .
- Kopioi seuraava koodi ja liitä se koodiikkunaan.
Sub SortSingleColumnWithoutHeader() Range("B5:B15").Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo End Sub
Koodisi on nyt valmis ajettavaksi.
Tässä,
- Key1:=Range("B5") → Määritelty B5 jotta koodi tietää, mikä sarake lajitellaan.
- Order1:=xlAscending → Määritelty järjestys xlAscending jos haluat lajitella sarakkeen nousevassa järjestyksessä. Jos haluat lajitella sarakkeen laskevassa järjestyksessä, kirjoita xlDescending sen sijaan.
- Otsikko:= xlNo → Koska sarakkeellamme ei ole otsikkoa, määrittelimme sen sarakkeella xlNo vaihtoehto.
- Paina F5 näppäimistöllä tai valitse valikkoriviltä Suorita -> Suorita Sub/UserForm . Voit myös vain klikata pieni Play-kuvake alivalikkopalkissa makron suorittamiseksi.
Näet, että sarakkeesi on nyt lajiteltu nousevaan järjestykseen .
Huomatkaa, että tässä tapauksessa olemme määritelleet data-alueen manuaalisesti muotoon Range("B5:B15") .
Jos haluat muuttaa tietoja lisäämällä tai poistamalla arvoja, voit toteuttaa seuraavan koodin, joka päivittyy automaattisesti tietokokonaisuuden solujen perusteella.
Sub SortSingleColumnWithoutHeader() Range("B5", Range("B5").End(xlDown)).Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo End Sub
Huomaa, että sen sijaan, että määrittelisit alueen manuaalisesti komennolla Range("B5:B15") olemme kirjoittaneet, Range( "B5", Range("B5"). End(xlDown))) .
Tämä lajittelee sarakkeen sen viimeisen peräkkäisen täytetyn solun perusteella. Jos sarakkeessa on tyhjiä soluja, tiedot otetaan huomioon vain ensimmäiseen tyhjään soluun asti.
Lue lisää: VBA taulukon lajitteluun Excelissä (4 menetelmää)
2. Lisää VBA-makro lajittelemaan yksittäinen sarake otsikon kanssa.
Edellisessä jaksossa meillä oli yhden sarakkeen tietokokonaisuus, jossa ei ollut otsikkoa, mutta nyt meillä on seuraavat tiedot a sarake otsikolla .
Tällä kertaa opettelemme lajittelemaan sen kanssa. VBA-makro .
Vaiheet:
- Samalla tavalla kuin ennenkin, avaa Visual Basic Editor alkaen Kehittäjä välilehti ja Lisää a Moduuli koodiikkunassa.
- Kopioi koodiikkunaan seuraava koodi ja liitä se.
Sub SortSingleColumnWithHeader() Range("B5:B16").Sort Key1:=Range("B5"), Order1:=xlDescending, Header:=xlYes End Sub
Koodisi on nyt valmis ajettavaksi.
Täällä,
- Key1:=Range("B5") → Määritelty B5 jotta koodi tietää, mikä sarake lajitellaan.
- Order1:=xlDescending → Tällä kertaa lajittelemme sarakkeen alenevassa järjestyksessä, joten määrittele järjestys seuraavasti. xlDescending .
- Otsikko:= xlYes → Koska sarakkeellamme on tällä kertaa otsikko, määrittelimme sen komennolla xlYes vaihtoehto.
- Suorita tämä koodi ja saat sarake, jonka otsikko on lajiteltu alenevaan järjestykseen .
Lue lisää: Miten lajitella ListBox VBA: lla Excelissä (täydellinen opas)
Samanlaisia lukemia:
- Miten lajitella IP-osoite Excelissä (6 menetelmää)
- [Ratkaistu!] Excel Lajittelu ei toimi (2 ratkaisua)
- Miten lisätä lajittelupainike Excelissä (7 menetelmää)
- Lajittele alue VBA: n avulla Excelissä (6 esimerkkiä)
- Miten lajitella nimen mukaan Excelissä (3 esimerkkiä)
3. VBA-makro lajitella useita sarakkeita otsikon kanssa tai ilman otsikkoa
Voit myös lajitella useita sarakkeita tietokokonaisuudessa VBA-koodilla.
Vaiheet:
- Kuten aiemmin on osoitettu, avoin Visual Basic Editor alkaen Kehittäjä välilehti ja Lisää a Moduuli koodiikkunassa.
- Kopioi koodiikkunaan seuraava koodi ja liitä se.
Sub SortMultipleColumnsWithHeaders() With ActiveSheet.Sort .SortFields.Add Avain:=Range("B4"), Järjestys:=xlAscending .SortFields.Add Avain:=Range("C4"), Järjestys:=xlAscending .SetRange Range("B4:D15") .Header = xlYes .Apply End With End Sub
Koodisi on nyt valmis ajettavaksi.
Täällä,
.SortFields.Add Avain:=Range("B4"), Järjestys:=xlAscending
.SortFields.Add Avain:=Range("C4"), Järjestys:=xlAscending
Näillä kahdella rivillä määritellään Solu B4 ja C4 lajitella kaksi niihin liittyvää saraketta osoitteessa nouseva järjestys .
Koska tietokannassamme on otsikoita, määrittelimme seuraavasti Otsikko = xlYes , muuten olisimme kirjoittaneet Otsikko = xlNo koodin sisällä.
- Suorita tämä koodi ja saat sarakkeet, joiden otsikko on lajiteltu nousevaan järjestykseen. .
4. Makro tietojen lajitteluun kaksoisnapsauttamalla Excelin otsikkoa kaksoisnapsauttamalla
Jos haluat lajitella tiedot helposti vain seuraavalla tavalla kaksoisnapsauttamalla otsikkoa , voit tehdä sen VBA koodi.
Vaiheet:
- Napsauta hiiren kakkospainikkeella on arkki-välilehti .
- Napsauta ilmestyneestä vaihtoehtoluettelosta Näytä koodi .
- Koodi-ikkuna tulee näkyviin, kopioi seuraava koodi ja liitä se sinne.
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 Peruutus = False If Target.Row = 4 And Target.Column <= iCount Then Peruutus = True Set iRange = Range(Target.Address) Range("B4:D15").Sort Avain1:=iRange, Otsikko:=xlYes End If End Sub
- Tallenna koodi.
- Mene nyt takaisin kiinnostavaan työarkkiin ja jos olet kaksoisnapsauta otsikoita näet, että sarakkeet järjestyvät uudelleen.
Lue lisää: Miten lajitella ja suodattaa tietoja Excelissä (täydellinen ohje)
Muistettavat asiat
- Voit luoda nimetyn alueen ja käyttää sitä sen sijaan, kun annat soluviittausten alueen komennossa Lajittele Jos esimerkiksi haluat lajitella alueen A1:A10 , sen sijaan, että välittäisit sen joka kerta koodin sisällä, voit luoda siitä nimetyn alueen, kuten " SortRange " ja käyttää sitä yhdessä Range.Sort menetelmä kuten Range("SortRange") .
- Jos et ole varma, onko tietokokonaisuudellasi otsikoita vai ei, voit antaa järjestelmän määrittää sen käyttämällä komentoa xlGuess parametri.
Päätelmä
Tämä artikkeli osoitti, miten lajittele sarake Excelissä VBA Toivottavasti tästä artikkelista on ollut teille paljon hyötyä. Kysykää rohkeasti, jos teillä on aiheeseen liittyviä kysymyksiä.