VBA-lajittelualue | Kuinka lajitella alue Excel VBA: ssa?

Excel VBA -lajittelualue

Alueen lajittelu VBA: ssa tapahtuu range.sort -menetelmän mukaan, se on aluemenetelmän ominaisuus, jolla käyttäjä voi lajitella alueen järjestyksessä, tämän funktion argumentit ovat Key1, Order1, Key2, Type, Order2, Key3 , Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3, kaikki tämän toiminnon argumentit ovat valinnaisia.

Osana tietojen järjestämistä tai tietojen jäsentämistä on tärkeää lajitella ja järjestää tiedot. Samanlainen asia on saatavana myös VBA: n kanssa, joten yleinen kysymys uusista VBA-oppijoista on, kuinka voimme käyttää tällaista vaihtoehtoa osana VBA-automaatiota, ja tämä artikkeli opastaa sinut VBA-lajittelualueen läpi yksityiskohtaisesti.

Excelin kanssa me kaikki tunnemme DATA-välilehdessä olevan lajitteluvaihtoehdon.

Lajitteluvaihtoehto VBA: ssa

Lajitteluvaihtoehdon käyttämiseksi meidän on ensin päätettävä, mikä tietoalueemme on, ja mainittava sama tietoalue käyttämällä RANGE-objektia VBA: ssa, sitten vain me voimme käyttää VBA: n "Lajittelu" -vaihtoehtoa. Oletetaan esimerkiksi, että data-alueeni on A1: stä D10: een, niin voimme tarjota data-alueen seuraavasti.

Koodi:

 Alalajittelualue_esimerkki () Alue ("A1: D10") Lopeta alaluokka 

Laita nyt piste ja valitse SORT-menetelmä.

Koodi:

 Alalajittelu_alueen_esimerkki () -alue ("A1: D10"). Lajittele loppuala 

Alla on alueen SORT-menetelmän syntaksi, vaikka syntaksilla on erilaisia ​​argumentteja, emme tarvitse kaikkia niitä VBA-koodauksemme vuoksi, joten tarvitsemme vain muutamia elementtejä.

[Avain1]: Lajiteltavalla data-alueella meidän on määritettävä sarake, joka meidän on lajiteltava. Esimerkiksi A1: D10-tietovälillä, jos haluamme lajitella tiedot sarakkeen B perusteella, [Key1] on Range ("B1") .

[Tilauksesta1]: Mainitut sarake [Key1] argumentti olisi eräänlainen missä järjestyksessä. Voimme valita täältä kaksi vaihtoehtoa: "xlAscending" tai "xlDescending".

Otsikko: Mainitulla data-alueella on otsikot tai ei, jos kyllä, voimme toimittaa "xlYes" tai muuten "xlNo".

Esimerkki lajittelualueesta VBA: ssa

Otetaan esimerkki Excelin VBA-lajittelulajista, jotta ymmärrämme tämän paremmin.

Voit ladata tämän VBA Sort Range Excel -mallin täältä - VBA Sort Range Excel -malli

Katso esimerkiksi alla olevaa tietorakennetta.

Meillä on tietoja A1: stä E17: een, joten ensin lajittelemme tiedot "maittain". Kirjoita koodi tietojen lajittelua varten noudattamalla seuraavia ohjeita.

Vaihe 1: Käynnistä Excel-makro.

Koodi:

 Alalajittelu_alueen_esimerkki () Lopeta ala 

Vaihe 2: Mainitse ensin data-alue RANGE- objektilla.

Koodi:

 Alalajittelualue_esimerkki () Alue ("A1: E17") Loppu alaluokka 

Vaihe 3: Valitse nyt Range-objektin Lajittele- menetelmä.

Koodi:

 Alalajittelualue_esimerkki () -alue ("A1: E17") 

Vaihe 4: Koska lajittelemme tietoja "maakohtaisesti", avaimen 1 argumenttisarakkeeksi tulee Range ("B1").

Koodi:

 Alalajittelualue_esimerkki () -alue ("A1: E17"). Lajitteluavain1: = Alue ("B1"), loppuosa 

Vaihe 5: Kun vaadittu sarake on mainittu, meidän on mainittava missä järjestyksessä meidän on lajiteltava tiedot ja "Tilaus1" on "xlAscending" -järjestys.

Koodi:

 Alalajittelualue_esimerkki () Alue ("A1: E17"). Lajitteluavain1: = Alue ("B1"), Järjestys1: = xlKorkea, Loppu 

Vaihe 6: Tietoissamme on otsikot, joten otsikko on "xlYes".

Koodi:

 Alalajittelualue_esimerkki () Alue ("A1: E17"). Lajitteluavain1: = Alue ("B1"), Järjestys1: = xlAscending, Otsikko: = xlKyllä End Sub 

Olemme maininneet kaikki elementit, joita tarvitaan tietojen lajittelemiseen. Suorita koodi painamalla F5-toimintoa ja -näppäintä ja katso tulos.

Tuotos:

Tiedot on lajiteltu maiden nimien mukaan järjestyksessä A - Z.

Oletetaan nyt, että meidän on lajiteltava tiedot maakohtaisesti, ja meidän on myös lajiteltava " bruttomyynti " korkeimmasta pienimpään. Tällaisissa tapauksissa meidän on käytettävä myös Key2- ja Order2-argumentteja.

Mainittuamme Key1 & Order1, valitsemme Key2.

Koodi:

 Alalajittelualue_esimerkki () Alue ("A1: E17"). Lajitteluavain1: = Alue ("B1"), Järjestys1: = xlKorkeus, Avain2: = Loppu 

Koska olemme lajittelu tietojen perusteella ” brutto myynti ” sarake meidän avain2 sarakkeen nimi on Range ( ”D1”).

Koodi:

 Alalajittelualue_esimerkki () Alue ("A1: E17"). Lajitteluavain1: = Alue ("B1"), Järjestys1: = xlKorkeus, Avain2: = Alue ("D1"), Loppuosa 

Kun avain2 on määritetty, meidän on päätettävä järjestysmallista siitä, onko kyseessä nouseva järjestys vai laskeva järjestys Order2-argumentissa, koska lajittelemme myynti-arvon suurimmasta pienimpään voimme valita "xlDescending" -järjestyksen.

Koodi:

 Alalajittelualue_esimerkki () Alue ("A1: E17"). Lajitteluavain1: = Alue ("B1"), Tilaus1: = xlAscending, Avain2: = Alue ("D1"), Tilaus2: = xlLaskeva, Otsikko: = xlKyllä End Sub 

Tämän jälkeen mainitse Header-argumentti nimellä "xYYes". Suorita nyt koodi ja katso mitä tapahtuu.

Tuotos:

Aikaisemmin se on lajiteltu vain "maakohtaisesti", mutta tällä kertaa se on ensin lajiteltu "maakohtaisesti" ja sitten myös "bruttomyynti" korkeimmasta pienimpään.

Tällä tavoin voimme käyttää tietojen järjestämiseen VBA: n " Lajittelutapa " -menetelmää.

Muistettavaa Excel VBA -lajittelualueesta

  • Lajittelu on VBA: ssa käytettävissä oleva menetelmä, ja tämän menetelmän käyttämiseksi meidän on määritettävä, minkä solualueen aiomme lajitella.
  • Jos data-alue sisältää otsikot, meidän on valittava otsikkovaihtoehto "xlYes", jos ei, voimme valita "xlNo".