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

Hur döljer eller visar jag ett visst kalkylblad baserat på cellvärde i ett annat ark?

Finns det några metoder för oss att dölja eller ta bort en specifik kalkylflik på basis av ett cellinnehåll i ett annat ark? När jag till exempel skriver in texten ”Ja” i cellen G1 i Sheet2 vill jag att Sheet1 ska döljas och när jag anger “No” ska Sheet1 visas på en gång. Hur kunde jag lösa detta problem i Excel?

Dölj eller ta bort en specifik kalkylflik på basis av cellvärde med VBA-kod


pil blå höger bubbla Dölj eller ta bort en specifik kalkylflik på basis av cellvärde med VBA-kod

För att dölja eller ta bort en viss kalkylflik på basis av ett cellvärde i ett annat kalkylblad kan följande VBA-kod göra dig en tjänst, gör så här:

1. Gå till kalkylbladet som innehåller cellvärdet du vill dölja ett annat ark baserat på.

2. Högerklicka på arkfliken och välj Visa kod, i poppade ut Microsoft Visual Basic för applikationer fönster, kopiera och klistra in följande kod i det tomma modulfönstret, se skärmdump:

VBA-kod: Dölj eller dölj en kalkylbladflik baserat på cellvärde:

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

fliken doc gömma baserat på cellvärde 1

Notera: I ovanstående kod, G1 och Ja är det cell- och cellinnehåll som du vill basera på, och Sheet1 är det specifika arket som du vill dölja eller visa. Du kan ändra dem efter dina behov.

3. Spara och stäng sedan den här koden, när du anger "Nej" eller annan text i cell G1, är Dölj 1 dolt, men om du anger "Ja" i cellen, visas Blad 1 på en gång, se skärmdumpar:

fliken doc gömma baserat på cellvärde 2
1
fliken doc gömma baserat på cellvärde 3

 


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten

 

Sortera kommentarer efter
Kommentarer (23)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej
Tack för tipset. Jag måste göra samma scenario men inte bara på en cell (G1 i det här fallet) utan på alla celler i kolumn G. Jag har försökt med "Range" men det fungerade inte.

Privata delarkivsförändring (ByVal-mål som område)
If Range("X2:X100") = "" Då
Sheets("EU TASK BASERADE MÄTNINGAR").Synlig = Falskt
annars
Sheets("EU UPPGIFTSBASERADE MÄTNINGAR").Synlig = Sant
End If
End Sub


Tack på förhand
Denna kommentar minimerades av moderatoren på webbplatsen
Finns det någon chans att detta besvarades? Jag stöter också på det här scenariot där en hel rad kommer in i bilden istället för bara en cell... Jag använde samma kodning med samma resultat.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag gjorde 2 arbetsblad enligt följande:
Privata delarkivsförändring (ByVal-mål som område)
Om [C20] = "Ja" Då
Sheets("sheet1").Synlig = Sant
annars
Sheets("sheet1").Visible = False
End If
Om [C22] = "Ja" Då
Sheets("sheet2").Synlig = Sant
annars
Sheets("sheet2").Visible = False
End If
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Väldigt hjälpsam!
Denna kommentar minimerades av moderatoren på webbplatsen
Jag vill se om du kan hjälpa mig med mitt problem. Jag har haft den exakta koden i ett ark jag använder men med en eller-funktion så svaret kan vara "ja" eller "sant". Emellertid döljer arket som håller på att döljas/visas ibland igen sig självt av okända anledningar. Det kommer att visas när jag skriver ja, men när jag använder det senare döljs det igen, även om cellvärdet fortfarande är ja. Någon aning om varför detta kan hända och/eller hur man fixar det?
Kod för referens:
Private Sub Worksheet_Change(ByVal Target As Range)'Döljer/visar kalibreringssida
Om [B18] = "Ja" eller Target.Value = "Sant" då
Sheets ("XXX Verification"). Visible = True
annars
Sheets("XXX Verification").Visible = False
End If

Denna kommentar minimerades av moderatoren på webbplatsen
Hej Jag har en arbetsbok med flera namngivna flikar länkade till ett indexark längst fram. Användaren kan välja de ark de vill använda genom att markera en ruta bredvid arknamnet - tom, ej tillgänglig eller Ja (rullgardinsmeny). Finns det något sätt att anpassa denna kod så att bladet är synligt om kryssrutan är tom eller innehåller "Ja" men inte synlig om kryssrutan innehåller "N/A".
Jag har försökt men vet inte tillräckligt om VBA för att få det att fungera. Tack
Denna kommentar minimerades av moderatoren på webbplatsen
Jag vill dölja eller visa ark baserat på ett cellvärde (Ja/Nej). Värdena finns i en tabell (tblFileContents) och kolumn D4:D25 och arknamnet är i A4:A25 på arket . Ordningen på föremålen kan ändras. Har du en referens till ett exempel som skulle tillåta mig att göra detta?
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har samma problem och någon annan har gett en lösning.
Gör en tabell (format som tabell) med 2 kolumner, namnge den vänstra kolumnen Sheets för att visa/dölja, den högra kolumnen är upp till dig.Sätt alla bladnamn i den vänstra kolumnen
Välj sedan Visa kod för den här fliken och ange Dim Changed As Range, c As Range, rMTS As Range
Dim jag så länge
Dim bShowAll As Boolean

Ange rMTS = Range("TblShowHide[Mark to Show]")
Set Changed = Intersect(Target, rMTS)
Om det inte ändras är ingenting då
bShowAll = Len(rMTS.Cells(1).Value) > 0
On Error Resume Next
För i = 2 Till rMTS.Rows.Count
Sheets(Range("TblShowHide[Show/Hide Sheets]").Cells(i).Value).Visible = IIf(bShowAll, True, Len(rMTS.Cells(i).Value) > 0)
Nästa jag
På Fel GoTo 0
End If
End Sub


Denna kommentar minimerades av moderatoren på webbplatsen
Jag ska ge detta ett försök. Tack så mycket!
Denna kommentar minimerades av moderatoren på webbplatsen
Jag är inte säker på vad jag behöver ändra men det fungerade inte för mig.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Jean,
ja jag har ett exempel som jag bifogat här. Byt namn på filen till example.xlsm (den är inte zippad, men måste byta namn för att ladda upp)
På menyfliken finns en tabell med de olika fliknamnen, gör ett x eller något annat tecken för att visa fliken, tar du bort tecknet gömmer sig fliken.
Hoppas det hjälper
Denna kommentar minimerades av moderatoren på webbplatsen
Detta innehåller flera objekt men ingen excel-fil.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag vill ha en Meny/Innehållsförteckning som mitt första arbetsblad och baserat på Ja/Nej-svar - vissa arbetsblad visas dvs fler än 1 blir synliga.
Jag kämpar för att få flera kalkylblad att visas baserat på ovanstående kod.
Kan jag använda en OCH-funktion, t.ex. om X-cell = "Ja", gör då Y-ark synligt och Z-ark och K-ark?
Alla råd välkomnas varmt.
Hälsningar
Helen
Denna kommentar minimerades av moderatoren på webbplatsen
Om du inte vill ha kontakt, kan du göra något med det?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej kompis,

Du kan öppna ett nytt Google-ark, lägga till ett nytt ark så att det finns ett "Sheet1" och ett "Sheet2" och sedan gå till Verktyg > Skriptredigerare. Klistra in följande i editorn.

function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName("Sheet1");
var sheet2 = ss.getSheetByName("Sheet2");

var cell1 = ark1.getRange('B2');

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

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

Gör ett försök.

Vänliga hälsningar,
Mandy
Denna kommentar minimerades av moderatoren på webbplatsen
Den här koden fungerar utmärkt, men jag har 42 variabler för 70 ark så den här koden blir väldigt lång och slutar fungera. Finns det något sätt att göra den här koden i sektioner så att den inte överskrider kodstorleken som VBA kan hantera? Eller måste jag dela upp dessa i två separata excel?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Liz
Tyvärr, för närvarande finns det inget bra sätt att lösa ditt problem.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har ett värde i cell B1 som om ja visar ark1 men också ett värde i B2 det är om ja visar ark2 etc etc.. det döljer/visar det sista arket bra men inte resten, hur skulle jag gå till väga för att säga 10 värden 10 olika ark? tack
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, Andy,
För att lösa ditt problem, använd koden nedan:
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

Anmärkningar: I ovanstående kod behöver du bara kopiera nedanstående skript flera gånger och ändra cellreferens och arknamn till ditt eget.
If [B2] = "Yes" Then
Sheets("Sheet1").Visible = True
Else
Sheets("Sheet1").Visible = False
End If


Gör ett försök, hoppas det kan hjälpa dig!
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har ett problem där jag vill att fliken ska visas för ett antal värden, snarare än bara ett JA eller NEJ. När jag försöker upprepa IF-satsen i sub-satsen ger det mig ett fel och när jag försöker lista flera värden i if-satsen får jag ett fel. Några idéer?

Det verkar nästan som att jag behöver använda ett IF/OR-uttalande men inte säker på hur det skulle fungera.

Privata delarkivsförändring (ByVal-mål som område)
Om [K6] = "VS 1", "VS 2", "VS 3", VS 4"
Sheets("Page6").Synlig = Sant
annars
Sheets("Page6").Visible = False
End If
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Margareta,
För att lösa ditt problem, använd koden nedan, du bör använda Eller för att gå med i villkoren.
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

Gör ett försök, hoppas det kan hjälpa dig!
Denna kommentar minimerades av moderatoren på webbplatsen
Skyyang - det här fungerade perfekt. Tack för ditt snabba svar!
Denna kommentar minimerades av moderatoren på webbplatsen
Jag försöker använda detta men det kommer upp med "kompileringsfel - kan inte hitta projekt eller bibliotek" och markerar cellen där rullgardinsmenyn Ja/Nej finns. Jag tror att det kan bero på att det här är en sammanslagen cell, finns det någon väg runt detta?
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL