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应用程序 窗口,请将以下代码复制并粘贴到空白的“模块”窗口中,请参见屏幕截图:

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 列的所有单元格上。我尝试过使用“范围”,但它没有用。

私人子Worksheet_Change(按目标的ByVal目标)
如果 Range("X2:X100") = "" 那么
Sheets("欧盟基于任务的测量").Visible = False
其他
Sheets("欧盟基于任务的测量").Visible = True
结束如果
END SUB


谢谢你在前进
该评论由网站上的主持人最小化
有没有机会回答这个问题? 我也遇到了这种情况,整个范围都在起作用,而不仅仅是一个单元格……我使用了相同的编码,结果相同。
该评论由网站上的主持人最小化
我做了2个工作表如下:
私人子Worksheet_Change(按目标的ByVal目标)
如果 [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();
}
}

请试一试。

Sincerely,
曼迪
该评论由网站上的主持人最小化
这段代码效果很好,但是我有 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 语句,但不确定它是如何工作的。

私人子Worksheet_Change(按目标的ByVal目标)
如果 [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保护