VBA, lai šķirotu kolonnu programmā Excel (4 metodes)

  • Dalīties Ar Šo
Hugh West

Šķirošana programmā Excel, izmantojot VBA , jums ir jāpiemēro Range.Sort Šajā rakstā mēs parādīsim, kā sakārtot kolonnu programmā Excel ar Range.Sort metode VBA .

Lejupielādēt darba burtnīcu

No šejienes varat lejupielādēt bezmaksas praktisko Excel darba burtnīcu.

Kārtot kolonnu ar VBA.xlsm

Range.Sort metode programmā Excel VBA

Range.Sort metode VBA Excel programmā sakārto vērtību diapazonu. Šeit Diapazons ir objekta mainīgais, kas norāda šūnu diapazonu, kuru vēlamies atlasīt. sakārtot augošā vai dilstošā secībā.

Zemāk ir norādīti parametri, kas jums jāzina, strādājot ar šo metodi.

Parametrs Obligāti/pēc izvēles Datu tips Apraksts
Galvenais Pēc izvēles Variants Norāda diapazonu vai kolonnu, kuras vērtības ir šķirojamas.
Pasūtījums Pēc izvēles XlSortOrder Norāda, kādā secībā tiks veikta šķirošana.
  • xlAcending = Atlasīt augošā secībā.
  • xlSamazinoši = Atlasīt dilstošā secībā.
Virsraksts Pēc izvēles XlYesNoGuess Norāda, vai pirmajā rindā ir vai nav galvenes.
  • xlNo = Ja slejā nav nekādu virsrakstu; Noklusējuma vērtība.
  • xlYes = Ja kolonnām ir virsraksti.
  • xlUzzināt = Lai Excel varētu noteikt galvenes.

4 metodes, īstenojot VBA, lai šķirotu kolonnu programmā Excel

Šajā sadaļā uzzināsiet, kā sakārtot vienu kolonnu ar un bez galvenes. , vairākas kolonnas ar un bez galvenēm un kā šķirot, divreiz noklikšķinot uz kolonnas galvenes. programmā Excel.

1. Iebūvējiet VBA, lai Excel programmā sakārtotu vienu kolonnu bez galvenes

Ja vēlaties sakārtot vienu kolonnu savā Excel darblapā ar VBA pēc tam izpildiet tālāk norādītās darbības.

Šī ir mūsu sleja, kuru mēs šķirosim, izmantojot VBA kods.

Soļi:

  • Preses Alt + F11 uz tastatūras vai atveriet cilni Izstrādātājs -> Visual Basic lai atvērtu Visual Basic redaktors .

  • Iznirstošajā koda logā izvēlnes joslā noklikšķiniet uz Ievietot -> Modulis .

  • Nokopējiet un ielīmējiet kodu logā šādu kodu.
 Sub SortSingleColumnWithoutoutHeader() Range("B5:B15").Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo End Sub 

Tagad jūsu kods ir gatavs darbam.

Šeit,

  • Atslēga1:=Range("B5") → Norādīts B5 lai kods zinātu, kuru kolonnu šķirot.
  • Order1:=xlAscending → Norādīts pasūtījums kā xlAcending lai sakārtotu kolonnu augošā secībā. Ja kolonnu vēlaties sakārtot dilstošā secībā, rakstiet xlSamazinoši tā vietā.
  • Header:= xlNo → Tā kā mūsu kolonnai nav nevienas galvenes, mēs to norādījām ar xlNo iespēja.

  • Preses F5 uz tastatūras vai izvēlnes joslā izvēlieties Run -> Run Sub/UserForm Varat arī vienkārši noklikšķināt uz maza ikona Atskaņot apakšizvēlnes joslā, lai palaistu makro.

Redzēsiet, ka jūsu slejā tagad ir sakārtoti augošā secībā .

Ievērojiet, ka šeit datu diapazons ir definēts manuāli kā Diapazons("B5:B15") .

Ja vēlaties mainīt datus, pievienojot vai dzēšot vērtības, varat izmantot šādu kodu, kas automātiski atjaunina datus, pamatojoties uz datu kopas šūnām.

 Sub SortSingleColumnWithithoutHeader() Range("B5", Range("B5").End(xlDown)).Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo End Sub 

Ievērojiet, ka tā vietā, lai manuāli definētu diapazonu ar Diapazons("B5:B15") , mēs esam rakstījuši, Diapazons( "B5", Range("B5"). End(xlDown)) .

Tādējādi kolonna tiks sakārtota pēc pēdējās secīgi aizpildītās šūnas. Ja ir tukšas šūnas, dati tiks ņemti vērā tikai līdz pirmajai tukšajai šūnai.

Lasīt vairāk: VBA, lai šķirotu tabulu programmā Excel (4 metodes)

2. Ievietojiet VBA makrokonsoli, lai šķirotu vienu sleju ar galveni

Iepriekšējā sadaļā mums bija datu kopa ar vienu kolonnu bez galvenes, bet tagad mums ir a sleja ar virsrakstu .

Šoreiz mēs uzzināsim, kā to šķirot ar VBA makro .

Soļi:

  • Tāpat kā iepriekš, atveriet Visual Basic redaktors no Izstrādātājs cilne un Ievietot a Modulis koda logā.
  • Koda logā nokopējiet un ielīmējiet šādu kodu.
 Sub SortSingleColumnWithHeader() Range("B5:B16").Sort Key1:=Range("B5"), Order1:=xlDescending, Header:=xlYes End Sub 

Tagad jūsu kods ir gatavs darbam.

Šeit,

  • Atslēga1:=Range("B5") → Norādīts B5 lai kods zinātu, kuru kolonnu šķirot.
  • Order1:=xlDescending → Šoreiz mēs sakārtosim kolonnu dilstošā secībā, tāpēc norādīja secību kā xlSamazinoši .
  • Header:= xlYes → Tā kā mūsu kolonnai šoreiz ir galvene, mēs to norādījām ar xlYes iespēja.

  • Palaist šo kodu, un jūs saņemsiet slejā ar galveni, kas sakārtota dilstošā secībā. .

Lasīt vairāk: Kā sakārtot ListBox ar VBA programmā Excel (pilnīga rokasgrāmata)

Līdzīgi lasījumi:

  • Kā sakārtot IP adresi programmā Excel (6 metodes)
  • [Atrisināts!] Excel šķirošana nedarbojas (2 risinājumi)
  • Kā pievienot šķirošanas pogu programmā Excel (7 metodes)
  • Kārtot diapazonu, izmantojot VBA programmā Excel (6 piemēri)
  • Kā Excel programmā Atlasīt pēc nosaukuma (3 piemēri)

3. VBA makro programma vairāku kolonnu šķirošanai ar vai bez galvenes

Varat arī sakārtot vairākas datu kopas kolonnas, izmantojot VBA kodu.

Soļi:

  • Kā jau iepriekš norādīts, atvērtā Visual Basic redaktors no Izstrādātājs cilne un Ievietot a Modulis koda logā.
  • Koda logā nokopējiet un ielīmējiet šādu kodu.
 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 

Tagad jūsu kods ir gatavs darbam.

Šeit,

.SortFields.Add Key:=Range("B4"), Order:=xlAscending

.SortFields.Add Key:=Range("C4"), Order:=xlAscending

Ar šīm divām rindiņām mēs definējam Šūna B4 un C4 šķirot ar tiem saistītas divas kolonnas. vietnē augošā secībā .

Tā kā mūsu datu kopā ir galvenes, mēs norādījām. Header = xlYes , citādi mēs būtu rakstījuši Header = xlNo koda iekšpusē.

  • Palaist šo kodu, un jūs saņemsiet slejas ar virsrakstu, kas sakārtotas augošā secībā. .

4. Makrogramma datu šķirošanai, divreiz noklikšķinot uz galvenes programmā Excel

Ja vēlaties ērti šķirot datus tikai pēc dubultklikšķinot uz galvenes , to var izdarīt ar VBA kods.

Soļi:

  • Ar peles labo pogu noklikšķiniet uz par lapas cilne .
  • Parādītajā opciju sarakstā noklikšķiniet uz Skatīt kodu .
  • Parādīsies koda logs, nokopējiet un ielīmējiet tajā šādu kodu.
 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 
  • Saglabāt kodu.

  • Tagad atgriezieties pie interesējošās darblapas un, ja jūs divreiz noklikšķiniet uz virsrakstiem redzēsiet, ka kolonnas tiek reorganizētas.

Lasīt vairāk: Kā šķirot un filtrēt datus programmā Excel (pilnīgas vadlīnijas)

Lietas, kas jāatceras

  • Varat izveidot nosauktu diapazonu un tā vietā to izmantot, kad nododat šūnu atsauču diapazonu iekšpusē Atlasīt Piemēram, ja vēlaties sakārtot diapazonu A1:A10 , tā vietā, lai to katru reizi nodotu koda iekšienē, varat izveidot tā nosauktu diapazonu, piemēram, " SortRange " un izmantot to kopā ar Range.Sort metodi, piemēram. Range("SortRange") .
  • Ja neesat pārliecināts, vai jūsu datu kopai ir vai nav galvenes, varat ļaut sistēmai to noteikt, izmantojot komandu xlUzzināt parametrs.

Secinājums

Šajā rakstā tika parādīts, kā sakārtot kolonnu programmā Excel VBA . es ceru, ka šis raksts jums ir bijis ļoti noderīgs. Ja jums ir kādi jautājumi par šo tēmu, droši jautājiet.

Hjū Vests ir ļoti pieredzējis Excel treneris un analītiķis ar vairāk nekā 10 gadu pieredzi šajā nozarē. Viņam ir bakalaura grāds grāmatvedībā un finansēs un maģistra grāds uzņēmējdarbības vadībā. Hjū aizraujas ar mācīšanu, un viņš ir izstrādājis unikālu mācīšanas pieeju, kas ir viegli izpildāma un saprotama. Viņa ekspertu zināšanas programmā Excel ir palīdzējušas tūkstošiem studentu un profesionāļu visā pasaulē uzlabot savas prasmes un izcelties karjerā. Izmantojot savu emuāru, Hjū dalās savās zināšanās ar pasauli, piedāvājot bezmaksas Excel apmācības un tiešsaistes apmācību, lai palīdzētu personām un uzņēmumiem pilnībā izmantot savu potenciālu.