如何使用vba隐藏/显示工作表?
您可以使用 VBA 代码隐藏或显示 Excel 中的工作表。当您右键单击工作表选项卡时,您可以看到隐藏或显示它的选项,这与您可以使用 VBA 代码执行的操作相同。
在本文中,我们将介绍一些可以使用的方式和方法。
隐藏工作表的 VBA 代码
假设您想从活动工作簿中隐藏“Sheet1”。在这种情况下,您应该使用这样的代码。
Sheets("Sheet1").Visible = False
在上面的代码中,您引用了 Sheet1,使用了visible 属性并将其更改为 false。
让一片叶子非常隐蔽
您可以使用另一个选项来制作一个非常隐藏的工作表,用户无法轻易隐藏该工作表。
根据单元格的值隐藏工作表
好吧,如果你想使用单元格值而不是在代码中直接使用工作表名称,你可以引用这个单元格。
Sheets(Range("A1").Value).Visible = True
此代码引用单元格 A1 并使用其中的值来引用要隐藏的工作表。
有用的链接:运行宏–宏记录器– Visual Basic 编辑器–个人宏手册
在隐藏之前检查工作表
您还可以使用类似这样的小代码来检查您想要隐藏或不隐藏其输出的工作表。
Sub vba_hide_sheet() Dim sht As Worksheet For Each sht In ThisWorkbook.Worksheets If sht.Name = "Sheet1" Then sht.Visible = False Exit Sub End If Next sht MsgBox "Sheet not found", vbCritical, "Error" End Sub
上面的代码使用FOR EACH LOOP + IF STATEMENT循环遍历工作簿中的每个工作表。并检查您要隐藏的工作表。
隐藏所有工作表(ActiveSheet 除外)
现在你需要明白一件事,你无法隐藏所有的叶子。应该始终有一片叶子可见。
Sub vba_hide_sheet() Dim ws As Worksheet For Each ws In ThisWorkbook.Sheets If ActiveSheet.Name <> ws.Name Then ws.Visible = False End If Next ws End Sub
上面的代码迭代工作簿中的所有工作表,然后将每个工作表的名称与活动工作表的名称进行匹配,如果不匹配则将其隐藏。
显示工作表的 VBA 代码
要显示工作表,必须将visible 属性更改为TRUE。
Sheets("Sheet1").Visible = False
如果您要显示的工作表已经可见,则此代码将不会显示任何错误。但如果该工作表不存在,您将收到运行时错误“9”。
使用VBA显示所有隐藏的工作表
想象一下,您的工作簿中有多个隐藏工作表,如果您想手动隐藏它们,则必须一张一张地隐藏它们。
但这是一次性完成此操作的代码。
Sub vba_unhide_sheet() Dim ws As Worksheet For Each ws In ThisWorkbook.Sheets If ws.Visible = False Then ws.Visible = True End If Next ws End Sub
他仔细检查每一片叶子并揭开它的面具。