Note: The other languages of the website are Google-translated. Back to English

Jak skrýt nebo odkrýt konkrétní list na základě hodnoty buňky v jiném listu?

Existují nějaké způsoby, jak skrýt nebo odkrýt konkrétní kartu listu založenou na obsahu buňky v jiném listu? Například když zadám text „Ano“ do buňky G1 Listu 2, chci, aby byl List1 skrytý, a když zadám „Ne“, List1 se zobrazí najednou. Jak mohu vyřešit tento problém v aplikaci Excel?

Skryjte nebo odkryjte konkrétní kartu listu na základě hodnoty buňky pomocí kódu VBA


šipka modrá pravá bublina Skryjte nebo odkryjte konkrétní kartu listu na základě hodnoty buňky pomocí kódu VBA

Chcete-li skrýt nebo odkrýt konkrétní kartu listu založenou na hodnotě buňky v jiném listu, následující kód VBA vám může udělat laskavost, postupujte takto:

1. Přejděte na list obsahující hodnotu buňky, na které chcete skrýt jiný list.

2. Klikněte pravým tlačítkem na kartu listu a vyberte Zobrazit kód, ve vyskakovacím okně Microsoft Visual Basic pro aplikace okno, zkopírujte a vložte následující kód do prázdného okna modulu, viz screenshot:

Kód VBA: Skrytí nebo skrytí karty listu na základě hodnoty buňky:

Private Sub Worksheet_Change(ByVal Target As Range)
If [G1] = "Yes" Then
Sheets("Sheet1").Visible = True
Else
Sheets("Sheet1").Visible = False
End If
End Sub

doc skrýt kartu na základě hodnoty buňky 1

Poznámka: Ve výše uvedeném kódu G1 a Ano jsou buňka a obsah buňky, na kterém chcete založit, a Sheet1 je konkrétní list, který chcete skrýt nebo zobrazit. Můžete je podle potřeby změnit.

3. Poté tento kód uložte a zavřete, když do buňky G1 zadáte „Ne“ nebo jiný text, List1 je skrytý, ale pokud v buňce zadáte „Ano“, List1 se zobrazí najednou, viz screenshoty:

doc skrýt kartu na základě hodnoty buňky 2
1
doc skrýt kartu na základě hodnoty buňky 3

 


Nejlepší kancelářské nástroje produktivity

Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2021 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Plné funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.
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!
officetab dno

 

Komentáře (23)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Ahoj
děkuji za tip. Potřebuji udělat stejný scénář, ale ne pouze na jedné buňce (v tomto případě G1), ale na všech buňkách sloupce G. Zkoušel jsem to s "Rozsahem", ale nefungovalo to.

Soukromá dílčí tabulka_Změna (ByVal Target As Range)
If Range("X2:X100") = "" Pak
Listy ("MĚŘENÍ NA ZÁKLADĚ ÚKOLŮ EU"). Viditelné = False
Jiný
Listy ("MĚŘENÍ NA ZÁKLADĚ ÚKOLŮ EU"). Viditelné = Pravda
End If
End Sub


Děkuji předem
Tento komentář byl moderátorem webu minimalizován
Je nějaká šance, že to bylo zodpovězeno? Také se setkávám s tímto scénářem, kdy do hry vstupuje celá řada místo pouze jedné buňky... Použil jsem stejné kódování se stejnými výsledky.
Tento komentář byl moderátorem webu minimalizován
Udělal jsem 2 pracovní listy takto:
Soukromá dílčí tabulka_Změna (ByVal Target As Range)
Pokud [C20] = "Ano" Pak
Listy("list1").Viditelné = Pravda
Jiný
Listy("list1").Visible = False
End If
Pokud [C22] = "Ano" Pak
Listy("list2").Viditelné = Pravda
Jiný
Listy("list2").Visible = False
End If
End Sub
Tento komentář byl moderátorem webu minimalizován
Velmi nápomocný!
Tento komentář byl moderátorem webu minimalizován
Chci zjistit, zda mi můžete pomoci s mým problémem. Měl jsem v podstatě tento přesný kód v listu, který používám, ale s funkcí nebo, takže odpověď může být „ano“ nebo „pravda“. List, který je skryt/odkryt, se však někdy z neznámých důvodů znovu skryje. Zobrazí se, když napíšu ano, ale když jej použiji později, znovu se skryje, i když je hodnota buňky stále ano. Máte představu, proč se to může stát a/nebo jak to opravit?
Referenční kód:
Private Sub Worksheet_Change(ByVal Target As Range)'Skryje/odkryje stránku kalibrace
Pokud [B18] = "Ano" nebo Target.Value = "True" Pak
Sheets("XXX Verification").Visible = True
Jiný
Sheets("XXX Verification").Viditelné = False
End If

Tento komentář byl moderátorem webu minimalizován
Ahoj, mám sešit s několika pojmenovanými kartami spojenými s rejstříkem na přední straně. Uživatel si může vybrat listy, které chce použít, zaškrtnutím políčka vedle názvu listu - prázdný, N/A nebo Ano (rozbalovací seznam). Existuje způsob, jak upravit tento kód tak, aby byl list viditelný, pokud je zaškrtávací políčko prázdné nebo obsahuje „Ano“, ale neviditelné, pokud zaškrtávací políčko obsahuje „N/A“.
Zkoušel jsem, ale nevím dost o VBA, aby to fungovalo. dík
Tento komentář byl moderátorem webu minimalizován
Chci skrýt nebo odkrýt listy na základě hodnoty buňky (Ano/Ne). Hodnoty jsou v tabulce (tblFileContents) a sloupci D4:D25 a název listu je v A4:A25 na listu . Pořadí položek lze změnit. Máte odkaz na příklad, který by mi to umožnil?
Tento komentář byl moderátorem webu minimalizován
Mám stejný problém a někdo jiný poskytl řešení.
Vytvořte tabulku (ve formátu tabulky) se 2 sloupci, levý sloupec pojmenujte Listy, které chcete zobrazit/skrýt, pravý sloupec je na vás. Všechny názvy listů vložte do levého sloupce
Poté vyberte Zobrazit kód pro tuto kartu a zadejte Dim Changed As Range, c As Range, rMTS As Range
Dim i tak dlouho
Dim bShowAll As Boolean

Set rMTS = Range("TblShowHide[Mark to Show]")
Sada změněna = Intersect(Target, rMTS)
Pokud se nezmění, pak nic
bShowAll = Len(rMTS.Cells(1).Value) > 0
On Error Resume Next
Pro i = 2 To rMTS.Rows.Count
Sheets(Range("TblShowHide[Show/Hide Sheets]").Cells(i).Value).Visible = IIf(bShowAll, True, Len(rMTS.Cells(i).Value) > 0)
Příště já
Při chybě GoTo 0
End If
End Sub


Tento komentář byl moderátorem webu minimalizován
Zkusím to. Děkuji mnohokrát!
Tento komentář byl moderátorem webu minimalizován
Nevím, co mám změnit, ale nefungovalo to pro mě.
Tento komentář byl moderátorem webu minimalizován
Ahoj Jean,
ano, mám zde přiložený příklad. Přejmenujte soubor na example.xlsm (není zazipovaný, ale musel se přejmenovat, aby bylo možné nahrát)
Na záložce nabídky je tabulka s různými názvy záložek, pro zobrazení tabulátoru vytvořte x nebo jakýkoli jiný znak, pokud znak odstraníte, karta se skryje.
Doufám, že to pomůže
Tento komentář byl moderátorem webu minimalizován
Obsahuje několik položek, ale žádný soubor Excel.
Tento komentář byl moderátorem webu minimalizován
Chci mít nabídku/obsah jako svůj první pracovní list a na základě odpovědí Ano/Ne – zobrazí se určité listy, tj. bude viditelných více než 1.
Snažím se, aby se na základě výše uvedeného kódu zobrazilo několik pracovních listů.
Mohu použít funkci AND, např. If X cell = "Yes" Then Make Y Sheet viditelný a Z Sheet and K Sheet?
Jakákoli rada velmi vítána.
Pozdravy
Helen
Tento komentář byl moderátorem webu minimalizován
А я вот не могу понять, как такое сделать в гугл таблицах именно?
Tento komentář byl moderátorem webu minimalizován
Hello friend,

Můžete otevřít nový list Google, přidat nový list, takže tam bude „List1“ a „List2“ a poté přejděte do Nástroje > Editor skriptů. V editoru vložte následující.

function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var list1 = ss.getSheetByName("List1");
var list2 = ss.getSheetByName("List2");

var buňka1 = list1.getRange('B2');

if (cell1.getValue() == 2) {
list2.hideSheet();
}

if (cell1.getValue() == 3) {
list2.showSheet();
}
}

Zkuste to prosím.

S pozdravem,
Mandy
Tento komentář byl moderátorem webu minimalizován
Tento kód funguje skvěle, nicméně mám 42 proměnných pro 70 listů, takže tento kód bude velmi dlouhý a přestane fungovat. Existuje způsob, jak vytvořit tento kód v částech, aby nepřekročil velikost kódu, kterou VBA zvládne? Nebo je musím rozdělit do dvou samostatných excelů?
Tento komentář byl moderátorem webu minimalizován
Ahoj, Liz
Je nám líto, ale v současné době neexistuje dobrý způsob, jak váš problém vyřešit.
Tento komentář byl moderátorem webu minimalizován
V buňce B1 mám hodnotu, že pokud ano, odkryje list1, ale také hodnotu v B2, to znamená, že pokud ano, odkryje list2 atd. atd.. skryje/odkryje poslední list v pořádku, ale zbytek ne, jak bych měl odkrýt řekněme 10 hodnot 10 různých listů? dík
Tento komentář byl moderátorem webu minimalizován
Dobrý den, Andy,
Chcete-li vyřešit svůj problém, použijte níže uvedený kód:
Private Sub Worksheet_Change(ByVal Target As Range)
If [B2] = "Yes" Then
Sheets("Sheet1").Visible = True
Else
Sheets("Sheet1").Visible = False
End If
If [B3] = "Yes" Then
Sheets("Sheet2").Visible = True
Else
Sheets("Sheet2").Visible = False
End If
If [B4] = "Yes" Then
Sheets("Sheet3").Visible = True
Else
Sheets("Sheet3").Visible = False
End If
If [B5] = "Yes" Then
Sheets("Sheet4").Visible = True
Else
Sheets("Sheet4").Visible = False
End If
If [B6] = "Yes" Then
Sheets("Sheet5").Visible = True
Else
Sheets("Sheet5").Visible = False
End If
End Sub

Poznámka: Ve výše uvedeném kódu stačí několikrát zkopírovat níže uvedené skripty a změnit odkaz na buňku a název listu na svůj vlastní.
If [B2] = "Yes" Then
Sheets("Sheet1").Visible = True
Else
Sheets("Sheet1").Visible = False
End If


Zkuste to prosím, doufám, že vám to pomůže!
Tento komentář byl moderátorem webu minimalizován
Mám problém, kdy chci, aby se karta zobrazovala pro rozsah hodnot, nikoli pouze ANO nebo NE. Když se pokusím zopakovat příkaz IF v sub, zobrazí mi to chybu a když se pokusím uvést více hodnot v příkazu if, zobrazí se chyba. Nějaké nápady?

Skoro to vypadá, že musím použít příkaz IF/OR, ale nejsem si jistý, jak by to fungovalo.

Soukromá dílčí tabulka_Změna (ByVal Target As Range)
Pokud [K6] = "VS 1", "VS 2", "VS 3", VS 4" Pak
Listy("Strana6").Viditelné = Pravda
Jiný
Sheets("Page6").Viditelné = False
End If
End Sub
Tento komentář byl moderátorem webu minimalizován
Dobrý den, Margaret,
Chcete-li vyřešit svůj problém, použijte níže uvedený kód, ke spojení s podmínkami byste měli použít nebo.
Private Sub Worksheet_Change(ByVal Target As Range)
If [K6] = "VS 1" Or [K6] = "VS 2" Or [K6] = "VS 3" Or [K6] = "VS 4" Then
Sheets("Page6").Visible = True
Else
Sheets("Page6").Visible = False
End If
End Sub

Zkuste to prosím, doufám, že vám to pomůže!
Tento komentář byl moderátorem webu minimalizován
Skyyang - to fungovalo perfektně. Děkuji ti za okamžitou odpověď!
Tento komentář byl moderátorem webu minimalizován
Snažím se to použít, ale přichází s "chybou kompilace - nelze najít projekt nebo knihovnu" a zvýrazněním buňky, kde se nachází rozevírací nabídka Ano/Ne. Myslím, že to může být způsobeno tím, že jde o sloučenou buňku, existuje nějaký způsob, jak to obejít?
Zatím zde nejsou žádné komentáře
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění

Sociální sítě

Copyright © 2009 - www.extendoffice.com. | Všechna práva vyhrazena. Poháněno ExtendOffice. | |. | Sitemap
Microsoft a logo Office jsou ochranné známky nebo registrované ochranné známky společnosti Microsoft Corporation ve Spojených státech a / nebo jiných zemích.
Chráněno Sectigo SSL