VBA VeryHidden多个标签

时间:2018-09-24 21:20:04

标签: excel vba excel-vba hide

我已经进行了研究,无论出于什么原因,我都无法使这个简单的代码正常工作。简而言之,我正在尝试xlveryhidden 5个标签,但我收到了run-time error 1004。如果有的话,最好将工作表名称更改为代码名称,以防我更改选项卡名称:

  • 工作表1-计算
  • Sheet2-LY费率
  • Sheet3-TY费率
  • Sheet4-客户详细信息
  • 第5张-人口普查

Sub VeryHiddenTabs()
    Sheets(Array("Calculations", "LY Rates", "TY Rates", "Client Details", "Census")).Visible = xlVeryHidden
End Sub

2 个答案:

答案 0 :(得分:0)

根据您提供的信息,您似乎正在尝试使所有工作表都非常隐藏,因此您无法执行此操作。您必须在工作簿中至少有一张可见表。

另外,要使用VBA使表格非常隐藏而不使用表格名称,则应使用表格索引或表格代码名称。表格代码名称无法使用该界面进行更改,因此该代码可以与任何表格名称一起使用。要更改工作表的代码名称,请转到VBE(ALT + F11),双击所需的工作表并更改名称,这是属性窗口中的第一项,如果看不到属性窗口,请单击F4。 。假设您将工作表的代码名称更改为mySht1,则可以执行以下操作:

mySht1.Visible = xlVeryHidden

如果您使用图纸索引来更改可见性,则可以执行以下操作:

ThisWorkbook.Sheets(1).visible=xlVeryHidden

如果要使用此方法,则必须始终有一个可见的工作表,因此必须先创建工作表,然后运行以下代码:

Sub VeryHiddenTabs()
    For i = 1 To ThisWorkbook.Worksheets.Count - 1
        ThisWorkbook.Worksheets(i).Visible = xlVeryHidden
    Next
End Sub

由于您已经拥有您提到的工作表,因此Excel将隐藏所有工作表。上面的例程将使最后创建的工作表保持可见,其余的工作非常隐藏。

答案 1 :(得分:0)

我能够使用它来将工作表设置为.Visible = False

Sub HideMySheets()
    Sheets(Array(Sheet1.Name, Sheet2.Name, Sheet3.Name, Sheet4.Name, Sheet5.Name)).Visible = False
End Sub

不幸的是,事实证明,您不允许使用此方法将它们设置为.Visible = xlVeryHidden。取而代之的是,您必须使用@Ibo的方法逐页执行此操作。