Jak seřadit rozsah pomocí VBA v aplikaci Excel (6 příkladů)

  • Sdílet Toto
Hugh West

Znalost třídění rozsahů pomocí VBA v aplikaci Excel šetří čas a námahu při našich každodenních výpočtech. Ačkoli aplikace Excel poskytuje možnost třídění ve výchozím nastavení. Pomocí příkazu Range.Sort metoda , získáme přístup k několika parametrům pro třídění datové sady s více možnostmi než obvykle.

Stáhnout cvičebnici

Stáhněte si tento cvičební sešit a procvičujte si při čtení tohoto článku.

Řazení rozsahu v aplikaci Excel.xlsm

Úvod do příkazu Range.Sort v aplikaci Excel VBA

Cíl : Třídění rozsahu dat v buňkách.

Syntaxe:

výraz .Sort ( Klíč1 , Order1 , Klíč2 , Typ , Order2 , Klíč3 , Order3 , Záhlaví , OrderCustom , MatchCase , Orientace , SortMethod , DataOption1 , DataOption2 , DataOption3 )

Zde se výraz představuje Rozsah tj. buňku, řádek, sloupec nebo výběr buněk.

Argumenty:

Musíme poskytnout tři hlavní parametry pro Range.Sort metoda. Jsou to...

Klíč - Rozsah buněk z jednoho nebo více sloupců, které potřebujeme seřadit.

Objednávka - Zadejte pořadí řazení vzestupně nebo sestupně.

Záhlaví - Deklarujte, zda sloupce, které mají být seřazeny, mají záhlaví, nebo ne.

6 příkladů na řazení rozsahu v aplikaci Excel VBA

V tomto článku jako datovou sadu použijeme seznam jmen lidí s jejich datem narození a věkem. K setřídění datové sady použijeme různé metody. Projděme si článek a procvičme si osvojení těchto metod.

1. Třídění rozsahu jednoho sloupce pomocí aplikace Excel VBA

V tomto příkladu třídit lidí z nejstarší na nejmladší . Postupujme podle pokynů k použití Rozsah . Třídit metoda které budou třídit . Sloupec věk na adrese sestupné pořadí .

Kroky:

  • Přejděte na Karta Vývojář v Pás karet aplikace Excel na klikněte na na Visual Basic

  • Pak vyberte Možnost modulu z Karta Vložit otevřít nový modul .

Nyní vložíme náš kód do třídit na Věk rozsah sloupců.

1.1 Sloupec se záhlavím

Do vizuálního editoru kódu vložte následující kód.

 Sub SortRange() Range("D4:D11").Sort Key1:=Range("D4"), _ Order1:=xlDescending, _ Header:=xlYes End Sub 

Tisk F5 nebo klikněte na Spusťte na tlačítko provést kód.

Vysvětlení:

Ve výše uvedeném kódu jsme vložili-

Výraz (objekt Range)=Range("D4:D11"); na věkový sloupec s záhlaví na adrese buňka D4 a hodnoty na adrese D5:D11.

Key = Range("D4"); na klíč pro třídění.

Order= xlDescending; jak chceme třídit hodnoty z největší na nejnižší nastavíme pořadí třídění jako sestupně.

Záhlaví =xlAno; Na následujícím snímku obrazovky vidíme. datová sada záhlaví pro každý z sloupce.

1.2 Sloupec bez záhlaví

Do vizuálního editoru kódu vložte následující kód.

 Sub SortRange() Range("D4:D10").Sort Key1:=Range("D4"), _ Order1:=xlDescending, _ Header:=xlNo End Sub 

Tisk F5 nebo klikněte na Spustit na tlačítko provést kód.

Vysvětlení:

Ve výše uvedeném kódu jsme vložili-

Výraz (objekt Range)=Range("D4:D10"); na věkový sloupec bez záhlaví má adresu hodnoty na adrese D4:D10.

Key = Range("D4"); na klíč pro třídění.

Order= xlDescending; jak chceme třídit hodnoty z největší na nejnižší nastavíme pořadí třídění jako sestupně.

Záhlaví =xlNo; Na následujícím snímku obrazovky vidíme. datová sada nemá žádné záhlaví.

Související obsah: Jak řadit sloupce v aplikaci Excel bez míchání dat (3 způsoby)

2. Použití kódu VBA k řazení rozsahu více sloupců v aplikaci Excel

Zobrazení třídění v více sloupců , musíme upravit naše datová sada trochu. vložené stránky několik nový řádky V upraveném souboru dat jsou řádky 7, 8, a 9 mají totéž hodnoty pro datum narození a věk ale tři různá jména . jména jsou ne v jakémkoli konkrétní objednávka vzestupné nebo sestupné.

V tomto příkladu seřadíme jména v následujícím pořadí vzestupné pořadí . Spusťme následující kód v editoru Visual Basic:

 Sub SortRange() Range("B4:D12").Sort Key1:=Range("D4"), _ Order1:=xlDescending, _ Key2:=Range("B4"), _ Order2:=xlAscending, _ Header:=xlYes End Sub 

Vysvětlení:

Na výše uvedeném snímku obrazovky vidíme, že věk v položce sloupec D jsou tříděné na adrese sestupně Objednávka. Přidali jsme další dva parametry v našem předchozím kódu.

Klíč2: =Range("B4") , klíč pro třídění názvů.

Order2: =xlAscending ... objednávka pro shortování jmen .

V důsledku toho vidíme. jména na adrese řádky 7, 8 a 9 jsou nyní abecedně řazeno v vzestupně objednávka.

Na následujícím snímku obrazovky jsme změnili hodnota o Parametr Order2 na třídit . jména na adrese sestupně objednávka.

Přečtěte si více: Jak třídit více sloupců v aplikaci Excel (5 rychlých přístupů)

3. Dvojklikem na záhlaví seřadíte rozsah sloupců v aplikaci Excel VBA

Výchozí funkce řazení aplikace Excel neumožňuje. třídit hodnoty sloupce o dvojklikem na na záhlaví sloupce . Pomocí kódu VBA to však můžeme provést. Ilustrujme si tuto funkci použitím následujícího kódu.

 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim KeyRange As Range Dim ColCount As Integer ColCount = Range("A1:C8").Columns.Count Cancel = False If Target.Row = 1 And Target.Column <= ColCount Then Cancel = True Set KeyRange = Range(Target.Address) Range("A1:C8").Sort Key1:=KeyRange, Header:=xlYes End If End Sub 

V tomto kódu jsme použili Událost BeforeDoubleClick na zakázat obvyklé dvojité - klikněte na což je spuštění editace Když je tato událost spuštěna, pokud double - klikněte na na některém z záhlaví sloupců seřadí data sloupců v vzestupné pořadí .

Přečtěte si více: Třídění sloupců v aplikaci Excel pomocí VBA (4 metody)

Podobné čtení:

  • Jak přidat tlačítko třídění v aplikaci Excel (7 metod)
  • Třídění jedinečného seznamu v aplikaci Excel (10 užitečných metod)
  • Jak používat funkci třídění v aplikaci Excel VBA (8 vhodných příkladů)
  • Třídění duplicit v aplikaci Excel (sloupce a řádky)
  • Náhodné třídění v aplikaci Excel (vzorce + VBA)

4. Řazení rozsahu sloupců na základě barvy pozadí pomocí aplikace Excel VBA

Můžeme seřadit rozsah buněk ve sloupci na adrese na jejich barva pozadí K tomu potřebujeme přidat a parametr s názvem SortOn který má hodnota xlSortOnCellColor Abychom demonstrovali třídění, nastavíme nejprve různé barvy pozadí do řádků naší datová sada .

Pak v editoru kódu Visual Basic kopírovat následující kód a stiskněte F5 k jeho spuštění.

 Sub SortRangeByBackgroundColor() ActiveWorkbook.Worksheets("background").Sort.SortFields.Add2 Key:=Range("B4"), _ SortOn:=xlSortOnCellColor, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("background").Sort .SetRange Range("B4:D10") .Apply End With End Sub 

Na následujícím snímku obrazovky vidíme. setříděný soubor dat na základě jejich barvy pozadí.

Vysvětlení:

  • V tomto příkladu jsme pojmenovali pracovní list " pozadí ". V kódu tedy vložíme " pozadí " jako náš název aktivního pracovního listu.
  • Nastavili jsme B4 jako klíč a B4:D10 jako rozsah . Kód seřadí data na základě klíče.
  • Protože jsme nezadali parametr záhlaví , kód se spustí pro výchozí bez záhlaví.
  • Nastavili jsme objednávka parametr jako vzestupně, takže se data seřadila od nižších hodnot k vyšším. .

Přečtěte si více: Jak třídit podle barvy v aplikaci Excel (4 kritéria)

5. Použití kódu VBA pro řazení rozsahu sloupců na základě barvy písma

Pomocí kódu VBA můžeme setřídit naši sadu dat na základě jejich barva písma Nejprve musíme obarvit různé řádky pro ilustraci příkladu.

Níže uvedený kód slouží k setřídění datové sady na základě barva písma.

 Sub SortRangeByFontColor() ActiveWorkbook.Worksheets("fontcolor").Sort.SortFields.Add(Range("B4"), _ xlSortOnFontColor, xlAscending, xlSortNormal).SortOnValue.Color = RGB(0, 0, 0) With ActiveWorkbook.Worksheets("fontcolor").Sort .SetRange Range("B4:D11") .Header = xlYes .Orientation = xlTopToBottom .Apply End With End Sub 

Vysvětlení:

  • V tomto příkladu jsme pojmenovali pracovní list " fontcolor ". V kódu tedy vložíme " fontcolor " jako náš název aktivního pracovního listu.
  • Nastavili jsme B4 jako klíč a B4:D11 jako rozsah . Kód seřadí data na základě klíče.
  • V tomto příkladu jsme také zadali parametr záhlaví jako xlYes .
  • Zde nastavíme objednávka parametr jako vzestupně, takže se data seřadila od nižších hodnot k vyšším. .
  • Hodnota SortOn parametr je
  • Na stránkách parametr orientace má hodnotu xlTopToBottom protože je to povinné.
  • Barva třídit podle RGB, který má hodnotu od 0 na 255 .

Přečtěte si více: Jak seřadit dva sloupce v aplikaci Excel tak, aby se shodovaly (přesná i částečná shoda)

6. Změna orientace na rozsah řazení pomocí aplikace Excel VBA

Použití orientace můžeme změnit způsob, jakým chceme data třídit. V tomto příkladu jsme zadali. transponované náš soubor dat na třídit to horizontálně .

Vložme následující kód do editoru Visual Basic a stiskněte klávesu F5 pro jeho spuštění.

 Sub Orientation() Range("B4:H6").Sort Key1:=Range("B6"), _ Order1:=xlAscending, _ Orientation:=xlSortRows, _ Header:=xlYes End Sub 

Zde jsme tříděné údaje na základě věková řada na adrese vzestupně objednat z vlevo na vpravo . V kódu nastavíme orientace parametr jako xlSortRows .

Související obsah: Jak automaticky třídit více sloupců v aplikaci Excel (3 způsoby)

Na co nezapomenout

  • Na stránkách Parametr SortOn které jsme používali třídit rozsah sloupců na základě barva pozadí a barva písma lze použít pouze objekt pracovního listu . Nemůžeme ji používat s objekt rozsahu .
  • Na stránkách Událost BeforeDoubleClick třídí data pouze v vzestupně.

Závěr

Nyní víme, jak seřadit rozsah pomocí VBA v aplikaci Excel. Doufejme, že by vás to povzbudilo k jistějšímu používání. Jakékoli dotazy nebo návrhy nezapomeňte vložit do níže uvedeného pole pro komentáře.

Hugh West je velmi zkušený školitel a analytik Excelu s více než 10 lety zkušeností v oboru. Má bakalářský titul v oboru Účetnictví a finance a magisterský titul v oboru Business Administration. Hugh má vášeň pro výuku a vyvinul jedinečný přístup k výuce, který lze snadno sledovat a pochopit. Jeho odborné znalosti Excelu pomohly tisícům studentů a profesionálů po celém světě zlepšit své dovednosti a vyniknout ve své kariéře. Prostřednictvím svého blogu Hugh sdílí své znalosti se světem a nabízí bezplatné výukové programy Excelu a online školení, které jednotlivcům a firmám pomohou dosáhnout jejich plného potenciálu.