VBA UsedRange | Jak zjistit počet použitých řádků a sloupců?

UsedRange, jak název napovídá, jsou rozsahy, které jako nějaký druh hodnot v nich, prázdné buňky nejsou zahrnuty do použitých rozsahů, takže ve VBA Použité rozsahy je vlastnost objektu rozsahu ve VBA pro tyto rozsahy buněk v řádky a sloupce, které nejsou prázdné a mají v sobě nějaké hodnoty.

UsedRange ve VBA Excel

UsedRange ve VBA je vlastnost listu, která vrací objekt rozsahu představující použitý rozsah (všechny použité buňky Excel nebo vyplněné v listu) na konkrétním listu. Jedná se o vlastnost představující oblast pokrytou nebo ohraničenou buňkou vlevo nahoře použitou a poslední vpravo použitou buňkou v listu.

„Použitou buňku“ můžeme popsat jako buňku obsahující jakýkoli vzorec, formátování, hodnotu atd. Poslední použitou buňku můžeme také vybrat stisknutím kláves CTRL + END na klávesnici.

Následuje ilustrace UsedRange v listu:

Na výše uvedeném snímku obrazovky vidíme, že UsedRange je A1: D5.

Příklady vlastnosti Excel VBA UsedRange

Podívejme se na několik níže uvedených příkladů, abychom zjistili, jak lze vlastnost UsedRange v listu použít k vyhledání použitého rozsahu ve VBA:

Tuto šablonu aplikace VBA UsedRange Excel si můžete stáhnout zde - Šablona aplikace VBA UsedRange Excel

Příklad č. 1

Řekněme, že máme soubor Excel obsahující dva pracovní listy, a chceme najít a vybrat použitý rozsah na List1.

Podívejme se, co obsahuje List1:

K provedení tohoto úkolu používáme vlastnost UsedRange v okamžitém okně VBA. Okno VBA okamžité je nástroj, který pomáhá získat informace o souborech aplikace Excel, rychle spustit nebo odladit libovolný kód VBA, i když uživatel nepíše žádná makra. Je umístěn v editoru jazyka a lze k němu přistupovat následovně:

  • Přejděte na kartu Vývojář Excel a poté klikněte na Editor jazyka nebo stisknutím Alt + F11 otevřete okno Editoru jazyka.

Přitom se otevře okno takto:

  • Stisknutím kláves Ctrl + G otevřete okamžité okno a zadejte kód.

Okamžité okno vypadá takto:

  • Následující kód vybere použitý rozsah na List1

Kód:

„Pracovní listy („ List1 “). Aktivovat True? ActiveSheet.UsedRange.Select True

První příkaz kódu aktivuje List1 souboru a druhý příkaz vybere použitý rozsah v tomto aktivním listu.

Při psaní tohoto kódu vidíme, že rozsah použitý v Listu1 bude vybrán následovně:

Příklad č. 2

Řekněme, že v tomto příkladu chceme zjistit celkový počet řádků použitých v Listu 1. Chcete-li to provést, postupujte podle následujících kroků:

  • V modulu vytvořte název makra.

Kód:

 Sub TotalRows () End Sub 

  • Definujte proměnnou TotalRow jako celé číslo ve VBA:

Kód:

 Sub TotalRows () Dim TotalRow jako celé číslo End Sub 

  • Nyní přiřaďte proměnnou TotalRow se vzorcem pro výpočet celkového počtu řádků:

Kód:

 Sub TotalRows () Dim TotalRow As Integer TotalRow = ActiveSheet.UsedRange.Rows.Count End Sub 

  • Výslednou hodnotu TotalRow lze nyní zobrazit a vrátit pomocí pole se zprávou VBA (MsgBox) následujícím způsobem:

Kód:

 Sub TotalRows () Dim TotalRow jako celé číslo TotalRow = ActiveSheet.UsedRange.Rows.Count MsgBox TotalRow End Sub 

  • Nyní spustíme tento kód ručně nebo stisknutím klávesy F5 a získáme celkový počet řádků použitých v Listu 1 zobrazeném v okně se zprávou takto:

Na výše uvedeném snímku obrazovky tedy vidíme, že se v okně se zprávou vrací „5“ a jak vidíme v Listu1, celkový počet řádků v použitém rozsahu je 5.

Příklad č. 3

Podobně, pokud chceme zjistit celkový počet sloupců použitých v Listu1, budeme postupovat podle stejných kroků jako výše, s výjimkou mírné změny v kódu takto:

Kód:

 Sub TotalCols () Dim TotalCol As Integer TotalCol = ActiveSheet.UsedRange.Columns.Count MsgBox TotalCol End Sub 

Nyní, když tento kód spustíme ručně nebo stisknutím klávesy F5, získáme celkový počet sloupců použitých v Listu 1 zobrazeném v okně se zprávou takto:

V poli se zprávou se tedy vrací „4“ a jak vidíme v Sheet1, celkový počet sloupců v použitém rozsahu je 4.

Příklad č. 4

Nyní řekněme, že chceme najít poslední použité číslo řádku a sloupce v Listu2 souboru. Podívejme se, co obsahuje List2:

Postupujeme podle následujících kroků:

  • V modulu vytvořte název makra.

Kód:

 Sub LastRow () End Sub 

  • Definujte proměnnou LastRow jako celé číslo.

Kód:

 Sub LastRow () Dim LastRow jako celé číslo End Sub 

  • Nyní přiřaďte proměnnou LastRow se vzorcem pro výpočet naposledy použitého čísla řádku:

Kód:

 Sub LastRow () Dim LastRow As Integer LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Row End Sub 

Metoda SpecialCells v aplikaci Excel VBA vrací objekt rozsahu, který představuje pouze zadané typy buněk. Syntaxe metody SpecialCells je:

RangeObject.SpecialCells (typ, hodnota)

Ve výše uvedeném kódu xlCellTypeLastCell: představuje poslední buňku v použitém rozsahu.

Poznámka: ‚xlCellType 'bude dokonce zahrnovat prázdné buňky, u kterých byl změněn výchozí formát kterékoli z jejich buněk.
  • Výslednou hodnotu čísla LastRow lze nyní zobrazit a vrátit pomocí pole se zprávou (MsgBox) následujícím způsobem:

Kód:

 Sub LastRow () Dim LastRow As Integer LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Row MsgBox LastRow End Sub 

  • Nyní spustíme tento kód ručně nebo stisknutím klávesy F5 a získáme poslední použité číslo řádku v Listu2 zobrazené v okně zpráv takto:

Na výše uvedeném snímku obrazovky tedy vidíme, že v poli se zprávou se vrací „12“ a jak vidíme v Sheet2, poslední použité číslo řádku je 12.

Podobně, pokud si přejeme najít poslední použité číslo sloupce v Listu2, budeme postupovat podle stejných kroků jako výše, s výjimkou malé změny v kódu takto:

Kód:

 Sub LastCol () Dim LastCol As Integer LastCol = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Column MsgBox LastCol End Sub 

Nyní, když tento kód spustíme ručně nebo stisknutím klávesy F5, získáme poslední použité číslo sloupce v Listu2 zobrazené v okně zpráv takto:

Na výše uvedeném snímku obrazovky tedy vidíme, že v poli se zprávou se vrací „3“, a jak vidíme v Sheet2, poslední použité číslo sloupce je 3.

Co je třeba pamatovat na VBA UsedRange

  • VBA UsedRange je rozsah obdélníku.
  • VBA UsedRange zahrnuje buňky, které mají jakákoli data nebo jsou formátovány atd.
  • Excel VBA UsedRange nemusí nutně obsahovat buňku vlevo nahoře v listu.
  • UsedRange nemusí nutně považovat aktivní buňku za použitou.
  • UsedRange lze použít k vyhledání posledního použitého řádku ve VBA a k resetování použitého rozsahu atd.
  • Stisknutím klávesové zkratky aplikace Excel CTRL + SHIFT + ENTER na klávesnici lze rozšířit výběr z aktivní buňky na poslední použitou buňku v listu.