Přejít k hlavnímu obsahu

Jak skrýt sloupce v reálném čase na základě uživatelského vstupu v aplikaci Excel?

Pro většinu z nás může být běžným úkolem skrýt sloupce v Excelu, ale zkusili jste někdy skrýt sloupce automaticky na základě některých konkrétních vstupních hodnot? Když například do buňky zadám text „AA“, sloupec A se skryje; když zadám „BB“, sloupce B a C jsou skryté; při zadání „CC“ jsou sloupce D a E skryté; při zadání „DD“ je sloupec F skrytý, jak je ukázáno níže. Tento článek vytvoří kód VBA pro jeho vyřešení v Excelu.

Skrytí nebo zobrazení sloupců v reálném čase na základě uživatelského vstupu pomocí kódu VBA

Skrytím nebo zobrazením sloupců můžete filtrovat data na základě uživatelského vstupu pomocí kódu VBA


Skrytí nebo zobrazení sloupců v reálném čase na základě uživatelského vstupu pomocí kódu VBA

Chcete-li skrýt konkrétní sloupce v reálném čase na základě vstupních hodnot, použijte níže uvedený kód VBA:

1. V listu, kde chcete skrýt sloupce, klikněte pravým tlačítkem na záložku listu a potom klikněte Zobrazit kód z kontextové nabídky, viz snímek obrazovky

2. V otevřeném Microsoft Visual Basic pro aplikace zkopírujte a vložte následující kód VBA do List (kód) okno.

Kód VBA: Skrytí sloupců v reálném čase na základě vstupu uživatele

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby ExtendOffice
xcell = Range("K1").Value
Select Case xcell
Case "AA": Columns("A").EntireColumn.Hidden = False
Columns("A").EntireColumn.Hidden = True
Case "BB": Columns("B:C").EntireColumn.Hidden = False
Columns("B:C").EntireColumn.Hidden = True
Case "CC": Columns("D:E").EntireColumn.Hidden = False
Columns("D:E").EntireColumn.Hidden = True
Case "DD": Columns("F").EntireColumn.Hidden = False
Columns("F").EntireColumn.Hidden = True
Case Else
Columns("A:G").EntireColumn.Hidden = False
End Select
End Sub
Poznámka: Ve výše uvedeném kódu, K1 je buňka, do které zadáváte konkrétní text, a texty a názvy sloupců byste měli změnit podle svých potřeb. Kromě toho můžete přidat další nová kritéria pouhým přidáním níže uvedených skriptů:
  • Případ "AA": Columns("A").EntireColumn.Hidden = False
  • Columns("A").EntireColumn.Hidden = Pravda

3. Potom zavřete okno kódu. Nyní při zadávání „AA“ do buňky K1 a stiskněte vstoupit klíč, sloupec A je skrytý; při zadávání „BB“ a stiskněte vstoupit klíč, sloupce B a C jsou skryté atd. Pokud zadáte jakoukoli jinou hodnotu nebo smažete obsah, skryté sloupce se zobrazí najednou, viz ukázka níže:


Skrytím nebo zobrazením sloupců můžete filtrovat data na základě uživatelského vstupu pomocí kódu VBA

V tomto příkladu přejdu k filtrování rozsahu dat na základě zadaného názvu produktu. Když zadám „Hoodie“, zobrazí se pouze informace o Mikině a ostatní sloupce budou najednou skryty; a když zadám „Vše“, všechny sloupce se zobrazí jako ukázka níže:

1. V listu, kde chcete skrýt sloupce, klikněte pravým tlačítkem na záložku listu a potom klikněte Zobrazit kód z kontextové nabídky viz screenshot:

2. V otevřeném Microsoft Visual Basic pro aplikace zkopírujte a vložte následující kód VBA do List (kód) okno.

Kód VBA: Skrytí nebo zobrazení sloupců pro filtrování dat na základě vstupu uživatele

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby ExtendOffice
    Dim x As Variant, y As String
     If Target.Address = "$K$1" Then
        y = Target.Value
        With Range("B1:H1")
            Application.ScreenUpdating = False
            .EntireColumn.Hidden = (y <> "All")
            If y <> "All" Then
                For Each x In .Cells
                    If x = y Then x.EntireColumn.Hidden = False
                Next
            End If
            Application.ScreenUpdating = True
        End With
    End If
End Sub
Poznámka: Ve výše uvedeném kódu, K1 je buňka, do které zadáváte konkrétní text, B1: H1 je záhlaví řádků obsahující název produktu, který chcete filtrovat.

3. Potom zavřete okno kódu. Pokud nyní zadáte název produktu do buňky K1, zobrazí se pouze odpovídající sloupce, ostatní se skryjí; a pokud zadáte text „Vše“, všechny sloupce se zobrazí jako ukázka níže:

Nejlepší nástroje pro produktivitu v kanceláři

Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50+ Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více

Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...

karta kte 201905


Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
Comments (0)
No ratings yet. Be the first to rate!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations