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 ExcelPří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.