VBA pentru a sorta coloana în Excel (4 metode)

  • Imparte Asta
Hugh West

Pentru a sorta în Excel cu VBA , trebuie să aplicați Interval.Sortare În acest articol, vă vom arăta cum să sortează coloana în Excel, cu ajutorul funcției Interval.Sortare metoda de VBA .

Descărcați caietul de lucru

Puteți descărca gratuit caietul de lucru Excel de practică de aici.

Sortare coloană cu VBA.xlsm

Metoda Range.Sort în Excel VBA

Gama.Sortare metoda din VBA sortează un interval de valori în Excel. Aici Gama este o variabilă obiect care specifică intervalul de celule pe care dorim să le sortați în ordine crescătoare sau descrescătoare.

Mai jos sunt prezentați parametrii pe care trebuie să îi cunoașteți atunci când lucrați cu această metodă.

Parametru Necesar/ Opțional Tip de date Descriere
Cheie Opțional Varianta Specifică intervalul sau coloana ale cărei valori urmează să fie sortate.
Comandă Opțional XlSortOrder Specifică ordinea în care se va efectua sortarea.
  • xlAscending = Pentru a sorta în ordine crescătoare.
  • xlDescendentă = Pentru a sorta în ordine descrescătoare.
Antet Opțional XlYesNoGuess Specifică dacă primul rând conține sau nu anteturi.
  • xlNo = Atunci când coloana nu are niciun antet; Valoare implicită.
  • xlYes = Atunci când coloanele au anteturi.
  • xlGuess = Pentru a lăsa Excel să determine anteturile.

4 Metode în implementarea VBA pentru a sorta coloana în Excel

În această secțiune, veți ști cum să sortarea unei singure coloane cu și fără antet , coloane multiple cu și fără antet și cum să sortare doar prin dublu clic pe antetul unei coloane în Excel.

1. Încorporați VBA pentru a sorta o singură coloană fără antet în Excel

Dacă doriți să sortarea unei singure coloane în foaia de calcul Excel cu VBA apoi urmați pașii de mai jos.

Aceasta este coloana noastră pe care o vom sorta cu VBA cod.

Pași:

  • Apăsați Alt + F11 de pe tastatură sau mergeți la fila Dezvoltator -> Visual Basic pentru a deschide Editor Visual Basic .

  • În fereastra de cod pop-up, din bara de meniu, faceți clic pe Inserare -> Modul .

  • Copiați următorul cod și lipiți-l în fereastra de cod.
 Sub SortSingleColumnWithoutHeader() Range("B5:B15").Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo End Sub 

Codul dumneavoastră este acum gata de a fi executat.

Aici,

  • Key1:=Range("B5") → Precizat B5 pentru a permite codului să știe ce coloană să sorteze.
  • Order1:=xlAscending → A specificat comanda ca fiind xlAscending pentru a sorta coloana în ordine crescătoare. Dacă doriți să sortați coloana în ordine descrescătoare, atunci scrieți xlDescendentă în schimb.
  • Header:= xlNo → Deoarece coloana noastră nu are niciun antet, am specificat-o cu xlNo opțiune.

  • Apăsați F5 de pe tastatură sau, din bara de meniu, selectați Run -> Run Sub/UserForm Puteți, de asemenea, să faceți clic pe pictograma mică de redare din bara de submeni pentru a rula macrocomenzul.

Veți vedea că coloana dvs. este acum sortate în ordine crescătoare .

Observați că aici am definit manual intervalul de date ca fiind Gama("B5:B15") .

Dacă doriți să modificați datele prin adăugarea sau ștergerea de valori, puteți implementa următorul cod care se actualizează automat pe baza celulelor din setul de date.

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

Observați că, în loc să definiți manual intervalul prin Gama("B5:B15") , am scris, Gama( "B5", Range("B5"). End(xlDown)) .

Aceasta va sorta coloana în funcție de ultima celulă completată consecutiv. Dacă există celule goale, datele vor fi luate în considerare doar până la prima celulă goală.

Citește mai mult: VBA pentru a sorta tabelul în Excel (4 metode)

2. Introduceți un macro VBA pentru a sorta o singură coloană cu antet

În secțiunea anterioară, am avut un set de date cu o singură coloană fără antet, dar acum avem a coloană cu un antet .

De data aceasta vom învăța cum să o sortăm cu Macro VBA .

Pași:

  • În același mod ca și înainte, deschideți Editor Visual Basic de la Dezvoltator fila și Introduceți a Modul în fereastra de cod.
  • În fereastra de cod, copiați următorul cod și lipiți-l.
 Sub SortSingleColumnWithHeader() Range("B5:B16").Sort Key1:=Range("B5"), Order1:=xlDescending, Header:=xlYes End Sub 

Codul dumneavoastră este acum gata de a fi executat.

Aici,

  • Key1:=Range("B5") → Precizat B5 pentru a permite codului să știe ce coloană să sorteze.
  • Order1:=xlDescending → De data aceasta vom sorta coloana în ordine descrescătoare, astfel că am specificat ordinea ca fiind xlDescendentă .
  • Header:= xlYes → Deoarece coloana noastră are un antet de data aceasta, l-am specificat cu xlYes opțiune.

  • Rulați acest cod și veți obține coloană cu antet sortată în ordine descrescătoare .

Citește mai mult: Cum să sortați ListBox cu VBA în Excel (Un ghid complet)

Lecturi similare:

  • Cum să sortați adresa IP în Excel (6 metode)
  • [Rezolvat!] Sortarea Excel nu funcționează (2 Soluții)
  • Cum să adăugați butonul de sortare în Excel (7 metode)
  • Sortarea intervalului utilizând VBA în Excel (6 exemple)
  • Cum să sortați după nume în Excel (3 exemple)

3. Macro VBA pentru sortarea mai multor coloane cu sau fără antet

De asemenea, puteți sortați mai multe coloane din setul de date cu ajutorul codului VBA.

Pași:

  • După cum s-a arătat anterior, open Editor Visual Basic de la Dezvoltator fila și Introduceți a Modul în fereastra de cod.
  • În fereastra de cod, copiați următorul cod și lipiți-l.
 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 

Codul dumneavoastră este acum gata de a fi executat.

Aici,

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

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

Prin aceste două linii, definim Celula B4 și C4 pentru a sorta două coloane asociate acestora în ordine crescătoare .

Deoarece avem anteturi în setul nostru de date, am specificat Header = xlYes , altfel am fi scris Header = xlNo în interiorul codului.

  • Rulați acest cod și veți obține coloane cu antet sortate în ordine crescătoare .

4. Macro pentru sortarea datelor prin dublu clic pe antet în Excel

Dacă doriți să sortați datele cu ușurință doar prin dublu-clic pe antet , puteți face acest lucru cu VBA cod.

Pași:

  • Faceți clic dreapta pe pe fila foaie .
  • Din lista de opțiuni apărute, faceți clic pe Vezi codul .
  • Va apărea fereastra de cod, copiați următorul cod și lipiți-l acolo.
 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 
  • Salvați codul.

  • Acum întoarceți-vă la foaia de lucru care vă interesează și dacă dublu clic pe anteturi veți vedea că coloanele se reorganizează.

Citiți mai mult: Cum să sortați și să filtrați datele în Excel (un ghid complet)

Lucruri de reținut

  • Puteți crea un interval denumit și îl puteți utiliza în schimb atunci când treceți un interval de referințe de celule în interiorul aplicației Sortare De exemplu, dacă doriți să sortați intervalul A1:A10 , în loc să îl treceți de fiecare dată în interiorul codului, puteți crea un interval numit al acestuia, cum ar fi " SortRange " și să o utilizați cu Interval.Sortare metoda ca Gama("SortRange") .
  • Dacă nu sunteți sigur dacă setul de date are anteturi sau nu, puteți lăsa sistemul să determine acest lucru folosind opțiunea xlGuess parametru.

Concluzie

Acest articol v-a arătat cum să sortează coloana în Excel VBA . sper că acest articol a fost foarte benefic pentru dvs. Nu ezitați să mă întrebați dacă aveți întrebări legate de acest subiect.

Hugh West este un trainer și analist Excel cu o experiență de peste 10 ani în industrie. Deține o diplomă de licență în contabilitate și finanțe și un master în administrarea afacerilor. Hugh are o pasiune pentru predare și a dezvoltat o abordare unică de predare care este ușor de urmărit și de înțeles. Cunoștințele sale experte despre Excel au ajutat mii de studenți și profesioniști din întreaga lume să-și îmbunătățească abilitățile și să exceleze în cariera lor. Prin blogul său, Hugh își împărtășește cunoștințele lumii, oferind tutoriale gratuite Excel și instruire online pentru a ajuta persoanele și companiile să-și atingă întregul potențial.