Microsoft Excel je výkonný nástroj, který vám umožňuje spravovat a analyzovat velké množství dat. Jedním z nejužitečnějších nástrojů aplikace Excel je možnost filtrování dat. Filtrování umožňuje uživateli rychle a přesně najít potřebné informace ve velké tabulce.
V Excelu existuje mnoho způsobů, jak povolit filtr. Jedním z nich je použití VBA (Visual Basic for Applications). VBA vám umožňuje automatizovat rutinní úkoly v Excelu a vytvářet vlastní makra.
Chcete-li povolit filtr pomocí VBA, musíte použít objekt AutoFilter. AutoFilter je funkce, která aplikuje filtr na celou sadu dat. Pomocí VBA lze filtr nakonfigurovat podle různých kritérií, jako jsou hodnoty ve sloupcích, textové úryvky nebo číselné rozsahy.
V tomto článku se podíváme na příklady kódu VBA, které umožní povolit filtr v Excelu a použít jej na požadovaná data. Podíváme se také na některé užitečné funkce VBA, které vám pomohou vytvořit složitější filtry a spravovat data v tabulce.
Povolení filtru v Excelu pomocí VBA: krok za krokem
Krok 1: Otevřete Excel a přejděte na kartu Vývojář. Pokud se karta Vývojář nezobrazí, otevřete Možnosti aplikace Excel a aktivujte ji.
Krok 2: Na kartě Vývojář vyhledejte sekci makra a klikněte na tlačítko "Zapsat makro".
Krok 3: V okně "Záznam makra", které se zobrazí, zadejte název makra a klikněte na "OK".
Krok 4: Na obrazovce se zobrazí okno "nahrávání makra". Všechny akce, které provedete v Excelu, budou zaznamenány do makra.
Krok 5: Povolte filtr v tabulce nebo datovém rozsahu v Excelu pomocí příkazu Data - > Filtr.
Krok 6: Jakmile nastavíte filtr podle svých potřeb, klikněte na tlačítko" Dokončit záznam "v okně"nahrávání makra".
Krok 7: Nyní můžete zavřít kartu Vývojář nebo ji nechat otevřenou a spustit makro.
Krok 8: Pokud potřebujete v budoucnu povolit filtr v Excelu, stačí spustit makro, které jste právě zapsali.
Všimněte si, že tyto kroky platí pro Excel 2010 a novější. U starších verzí aplikace Excel se proces může mírně lišit.
Příprava na práci s filtrem v Excelu
Než začnete používat filtr v Excelu pomocí VBA, musíte provést několik přípravných kroků.
1. Otevřete Excel a vyberte požadovaný list, na kterém budete Filtr používat.
2. Ujistěte se, že máte záhlaví pro každý sloupec, podle kterého chcete filtrovat data. Záhlaví usnadňují použití filtru, protože udávají, která data jsou obsažena v každém sloupci.
3. Zkontrolujte správnost dat v každém sloupci, který plánujete filtrovat. Filtrování nesprávných údajů může vést k nepředvídatelným výsledkům.
4. Ujistěte se, že jste obeznámeni se základními možnostmi filtrování v Excelu. Pochopení toho, jak filtr funguje, vám pomůže jej správně nakonfigurovat pomocí VBA.
Po dokončení těchto kroků budete připraveni začít používat filtr v Excelu pomocí VBA. Dále se podíváme na to, jak programově povolit a nakonfigurovat filtr pomocí kódu VBA.
Vytvoření makra pro zapnutí filtru
Chcete-li povolit filtr v Excelu pomocí VBA, musíte napsat speciální makro. V této části se podíváme na to, jak vytvořit makro, které bude obsahovat filtr ve vybraných sloupcích.
Chcete-li začít, otevřete Editor VBA stisknutím klávesy Alt+F11. Poté vyberte požadovaný modul nebo vytvořte nový modul.
Vložte následující kód do modulu:
Sub EnableFilter()Dim ws As WorksheetDim rng As Range' Выбираем активный листSet ws = ActiveSheet' Выбираем диапазон для фильтрацииSet rng = ws.Range("A1").CurrentRegion' Включаем фильтр в выбранных столбцахrng.AutoFilterMsgBox "Фильтр включен успешно!"End Sub
Kód začíná oznámením proměnných ws a rng . Proměnná ws bude představovat aktivní list a proměnná rng bude rozsah dat, ve kterém bude filtr povolen.
Kód poté vybere aktivní list pomocí metody ActiveSheet a určí rozsah pro filtrování pomocí metody CurrentRegion . Když vyberete buňku A1 jako startovací buňku, metoda CurrentRegion automaticky určí oblast dat na základě sousedních nepustných buněk.
Jakmile je rozsah definován , je povolána metoda AutoFilter, která obsahuje filtr ve vybraných sloupcích.
Nakonec se zobrazí zpráva pomocí funkce MsgBox, která informuje uživatele, že filtr byl úspěšně zapnut.
Nyní, když je makro vytvořeno, lze jej provést stisknutím klávesy F5 nebo vyvoláním ze seznamu maker. Po provedení makra bude ve vybraných sloupcích na aktivním listu zapnutý filtr.
Důležité je, že toto makro zapne filtr v celém rozsahu dat na aktivním listu. Pokud potřebujete povolit filtr pouze v určitých sloupcích, změňte kód zadáním požadovaného rozsahu.
Spuštění makra pro aktivaci filtru
Chcete-li povolit filtr v Excelu pomocí VBA, musíte vytvořit a spustit makro. Makro je sada instrukcí, které se provádějí automaticky při spuštění.
Příklad kódu VBA pro spuštění filtru v Excelu je následující:
Sub ActivateFilter()' Запуск фильтра для первого столбца на активном листеActiveSheet.Range("A1").AutoFilterEnd Sub
V tomto příkladu makro ActivateFilter aktivuje filtr pro první sloupec na aktivním listu. Pro aktivaci filtru v jiném sloupci je nutné změnit hodnotu v uvozovkách na odpovídající písmeno sloupce (např." B1 "nebo"C1").
Chcete-li spustit makro ActivateFilter, postupujte podle následujících kroků:
- Otevřete VBA editor v Excelu kliknutím na ALT + F11.
- V nabídce editoru vyberte Vložení → Modul.
- V okně modulu, které se zobrazí, vložte kód makra.
- Zavřete Editor VBA kliknutím na ALT + Q.
- Spusťte makro výběrem Nástroje → Makra → spustit makro a výběrem správného makra.
Po spuštění makra se filtr aktivuje a můžete jej použít k výběru dat v Excelu.
Nastavení filtru podle požadovaných kritérií
Chcete-li nastavit filtr v Excelu pomocí VBA, můžete zadat požadovaná kritéria, která musí data tabulky splňovat.
Nejprve je nutné určit rozsah buněk, na které bude filtr aplikován. To lze provést pomocí metody Range:
Dim rng As Range
Set rng = Worksheets ("List1").Range("A1:D10")
V tomto příkladu bude filtr aplikován na buňky od A1 do D10 na listu List1.
Poté je nutné vytvořit proměnnou pro uložení filtru:
Dim flt As AutoFilter
Pomocí metody AutoFilter filtr lze použít na daný rozsah:
Set flt = rng.AutoFilter
Dále je možné zadat požadovaná kritéria filtrace. Můžete například filtrovat řádky, ve kterých je hodnota ve sloupci A větší než 10:
Můžete také přidat další filtrační kritérium. Například filtrovat řádky, ve kterých hodnota ve sloupci B začíná písmenem "A":
Po zadání všech požadovaných filtračních kritérií lze filtr použít pomocí metody ApplyFilter:
V tabulce nyní zůstanou pouze řádky, které splňují daná kritéria filtrování.
K odstranění filtru je třeba použít metodu ShowAllData:
Pomocí VBA je tedy možné snadno nakonfigurovat filtr v Excelu podle požadovaných kritérií a získat pouze požadovaná data.
Opětovné zapnutí filtru při aktualizaci dat
Při práci s daty v Excelu pomocí skriptů VBA může dojít k situaci, kdy je třeba filtr po aktualizaci dat znovu zapnout. V tomto případě lze použít následující kód:
-
Určete proměnnou pro pracovní list, na kterém je tabulka s daty:
Dim ws As WorksheetSet ws = ThisWorkbook.Worksheets("Имя_листа")
Dim filterRange As RangeSet filterRange = ws.AutoFilter.Range
'ваш код для обновления данных, например:ws.Range("A2:B100").Clear'загрузка новых данных в таблицу
filterRange.AutoFilter
Po provedení těchto kroků bude filtr znovu povolen ve stejných sloupcích a se stejnými kritérii jako před aktualizací dat. Nyní můžete pokračovat s filtrovanými daty.
Pomocí tohoto kódu můžete automatizovat proces opětovného zapnutí filtru po aktualizaci dat v Excelu, což vám umožní ušetřit čas a snížit pravděpodobnost chyb při práci s velkým množstvím dat.
Obchodní scénáře použití filtru pomocí VBA
Funkce filtru v Excelu umožňují uživatelům zobrazovat data v tabulkách, s výjimkou hodnot, které potřebují. Ruční filtrování může být velmi časově náročný proces, zejména při práci s velkým množstvím dat. Nicméně, pomocí programovacího jazyka VBA (Visual Basic for Applications) je možné tento úkol automatizovat a výrazně zjednodušit práci s tabulkami.
Zde je několik obchodních scénářů použití filtru pomocí VBA:
| Scénář | Popis |
|---|---|
| Filtrování dat podle kritéria | Umožňuje filtrovat tabulku podle konkrétní hodnoty nebo podmínky, s výjimkou všech ostatních dat |
| Dynamická filtrace | Umožňuje vytvořit filtr, který se automaticky aktualizuje v závislosti na změnách původních dat |
| Vícenásobná filtrace | Umožňuje použít více filtrů najednou, abyste získali přesnější výsledky |
| Filtrování podle několika kritérií | Umožňuje použít filtr pomocí více podmínek najednou, abyste získali konkrétnější výsledky |
Takto vypadá proces použití VBA k filtrování dat v excelových tabulkách. I když může být VBA náročná a vyžaduje určité programovací dovednosti, poskytuje velké možnosti pro automatizaci úloh v Excelu, včetně filtrování dat.