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

如何根據另一個工作表中的單元格值隱藏或取消隱藏特定工作表?

有什麼方法可以讓我們根據另一個工作表中的單元格內容來隱藏或取消隱藏特定的工作表選項卡? 例如,當我在Sheet1的單元格G2中輸入文本“是”時,我希望隱藏Sheet1,而當我輸入“否”時,Sheet1將立即顯示。 如何在Excel中解決此問題?

使用VBA代碼根據單元格值隱藏或取消隱藏特定的工作表選項卡


箭頭藍色右氣泡 使用VBA代碼根據單元格值隱藏或取消隱藏特定的工作表選項卡

要基於另一個工作表中的單元格值隱藏或取消隱藏特定的工作表選項卡,以下VBA代碼可能會有所幫助,請執行以下操作:

1。 轉到包含您要基於其隱藏另一個工作表的單元格值的工作表。

2。 右鍵單擊工作表標籤,然後選擇 查看代碼,在彈出 Microsoft Visual Basic for Applications 窗口,請將以下代碼複製並粘貼到空白的“模塊”窗口中,請參見屏幕截圖:

VBA代碼:根據單元格值隱藏或隱藏工作表標籤:

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

基於單元格值1的doc隱藏選項卡

備註: 在上面的代碼中, G1 是,是您要基於的單元格和單元格內容,並且 Sheet1 是您要隱藏或取消隱藏的特定工作表。 您可以根據需要更改它們。

3。 然後保存並關閉此代碼,當您在單元格G1中輸入“否”或其他文本時,Sheet1被隱藏,但是,如果在單元格中輸入“是”,Sheet1將立即顯示,請參見屏幕截圖:

基於單元格值2的doc隱藏選項卡
1
基於單元格值3的doc隱藏選項卡

 


最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部

 

按評論排序
留言 (23)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
你好
謝謝你的提示。 我需要做同樣的場景,但不是只在一個單元格上(在這種情況下為 G1),而是在 G 列的所有單元格上。我嘗試過使用“範圍”,但它沒有用。

Private Sub Worksheet_Change(ByVal Target As Range)
如果 Range("X2:X100") = "" 那麼
Sheets("歐盟基於任務的測量").Visible = False
其他
Sheets("歐盟基於任務的測量").Visible = True
如果結束
END SUB


謝謝你在前進
網站主持人對此評論進行了最小化
有沒有機會回答這個問題? 我也遇到了這種情況,整個範圍都在起作用,而不僅僅是一個單元格……我使用了相同的編碼,結果相同。
網站主持人對此評論進行了最小化
我做了2個工作表如下:
Private Sub Worksheet_Change(ByVal Target As Range)
如果 [C20] = "是" 那麼
Sheets("sheet1").Visible = True
其他
Sheets("sheet1").Visible = False
如果結束
如果 [C22] = "是" 那麼
Sheets("sheet2").Visible = True
其他
Sheets("sheet2").Visible = False
如果結束
END SUB
網站主持人對此評論進行了最小化
很有幫助!
網站主持人對此評論進行了最小化
我想看看你能不能幫我解決我的問題。 我在我使用的工作表中基本上已經有了這個確切的代碼,但是有一個 or 函數,所以答案可以是“是”或“真的”。 但是,被隱藏/取消隱藏的工作表有時會由於未知原因重新隱藏。 當我輸入yes時它會取消隱藏,但是當我稍後使用它時它會再次隱藏,即使單元格值仍然是yes。 知道為什麼會發生這種情況,和/或如何解決嗎?
參考代碼:
Private Sub Worksheet_Change(ByVal Target As Range)'隱藏/取消隱藏校準頁面
如果 [B18] = "Yes" 或 Target.Value = "True" 那麼
Sheets("XXX 驗證").Visible = True
其他
Sheets("XXX 驗證").Visible = False
如果結束

網站主持人對此評論進行了最小化
您好我有一個帶有多個命名選項卡的工作簿,這些選項卡鏈接到前面的索引表。 用戶可以通過選中工作表名稱旁邊的框來選擇他們想要使用的工作表 - 空白、不適用或是(下拉列表)。 有沒有辦法調整此代碼,以便在復選框為空白或包含“是”時工作表可見,但如果復選框包含“N/A”則不可見。
我已經嘗試過,但對 VBA 的了解還不夠,無法使其正常工作。 謝謝
網站主持人對此評論進行了最小化
我希望根據單元格值(是/否)隱藏或取消隱藏工作表。 這些值在表 (tblFileContents) 和列 D4:D25 中,工作表名稱在工作表上的 A4:A25 中. 可以更改項目的順序。 你有一個例子可以讓我這樣做嗎?
網站主持人對此評論進行了最小化
我有同樣的問題,其他人提供了解決方案。
製作一個包含 2 列的表格(格式為表格),將左側列命名為要顯示/隱藏的表格,右側列由您決定。將所有表格名稱放在左側列中
然後為此選項卡選擇查看代碼並輸入 Dim Changed As Range, c As Range, rMTS As Range
昏暗的我只要
將 bShowAll 調暗為布爾值

設置 rMTS = Range("TblShowHide[Mark to Show]")
設置更改 = 相交(目標,rMTS)
如果不改變什麼都不是
bShowAll = Len(rMTS.Cells(1).Value) > 0
在錯誤恢復下一頁
對於 i = 2 到 rMTS.Rows.Count
Sheets(Range("TblShowHide[顯示/隱藏工作表]").Cells(i).Value).Visible = IIf(bShowAll, True, Len(rMTS.Cells(i).Value) > 0)
接下來,我
在錯誤轉到0
如果結束
END SUB


網站主持人對此評論進行了最小化
我會試試這個。 非常感謝你!
網站主持人對此評論進行了最小化
不知道我需要改變什麼,但它對我不起作用。
網站主持人對此評論進行了最小化
嗨,讓,
是的,我在這裡附上了一個例子。 將文件重命名為 example.xlsm(未壓縮,但必須重命名才能上傳)
在菜單選項卡上有一個帶有各種選項卡名稱的表格,製作一個 x 或任何其他字符以顯示選項卡,如果刪除該字符,選項卡將隱藏。
希望有所幫助
查看附件 (1 / 5)
網站主持人對此評論進行了最小化
這包含幾個項目,但沒有 excel 文件。
網站主持人對此評論進行了最小化
我希望有一個菜單/目錄作為我的第一個工作表並基於是/否答案 - 某些工作表出現,即超過 1 個變得可見。
我正在努力根據上面的代碼顯示幾個工作表。
我可以使用 AND 函數,例如如果 X 單元格 =“是”然後使 Y 表可見,Z 表和 K 表?
任何建議都非常受歡迎。
問候
海倫
網站主持人對此評論進行了最小化
А я вот не могу понять, как такое сделать в гугл таблицах именно?
網站主持人對此評論進行了最小化
朋友你好,

您可以打開一個新的 Google 工作表,添加一個新工作表,以便有一個“Sheet1”和一個“Sheet2”,然後轉到工具 > 腳本編輯器。 在編輯器中,粘貼以下內容。

功能我的功能(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName("Sheet1");
var sheet2 = ss.getSheetByName("Sheet2");

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

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

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

請試一試。

此致,
曼迪
網站主持人對此評論進行了最小化
這段代碼效果很好,但是我有 42 張紙的 70 個變量,所以這段代碼變得很長並且停止工作。 有沒有辦法在不超過 VBA 可以處理的代碼大小的情況下分段製作此代碼? 還是我必須將它們分成兩個單獨的excel?
網站主持人對此評論進行了最小化
你好,麗茲
抱歉,目前沒有解決您問題的好方法。
網站主持人對此評論進行了最小化
我在單元格 B1 中有一個值,如果是,則取消隱藏 sheet1,但在 B2 中也有一個值,如果是,則取消隱藏 Sheet2 等。它很好地隱藏/取消隱藏最後一張表,但不是其餘的,我將如何說 10 個值取消隱藏10張不同的床單? 謝謝
網站主持人對此評論進行了最小化
你好,安迪,
要解決您的問題,請應用以下代碼:
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

備註: 在上面的代碼中,你只需要多次復制下面的腳本,並將單元格引用和工作表名稱更改為你自己的。
If [B2] = "Yes" Then
Sheets("Sheet1").Visible = True
Else
Sheets("Sheet1").Visible = False
End If


請試一試,希望對您有所幫助!
網站主持人對此評論進行了最小化
我遇到了一個問題,我希望選項卡顯示一系列值,而不僅僅是“是”或“否”。 當我嘗試在 sub 中重複 IF 語句時,它給我一個錯誤,當我嘗試在 if 語句中列出多個值時,我得到一個錯誤。 有任何想法嗎?

似乎我需要使用 IF/OR 語句,但不確定它是如何工作的。

Private Sub Worksheet_Change(ByVal Target As Range)
如果 [K6] = "VS 1", "VS 2", "VS 3", VS 4" 然後
表(“Page6”).Visible = True
其他
Sheets("Page6").Visible = False
如果結束
END SUB
網站主持人對此評論進行了最小化
你好,瑪格麗特,
要解決您的問題,請應用以下代碼,您應該使用 Or 加入條件。
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

請試一試,希望對您有所幫助!
網站主持人對此評論進行了最小化
Skyyang - 這非常有效。 感謝您的及時回复!
網站主持人對此評論進行了最小化
我正在嘗試使用它,但出現“編譯錯誤 - 找不到項目或庫”並突出顯示是/否下拉列表所在的單元格。 我認為這可能是因為這是一個合併的單元格,有什麼辦法可以解決這個問題嗎?
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護