2016-12-05 291 views
0

我有一张工作表,其中包含15张不同的工作表。我想要一个“主菜单”表单,我只需点击一个按钮,然后将其重定向到所选工作表,同时隐藏所有其他表单。从选择的工作表中,我希望能够再次返回到“主菜单”工作表,并仍然保持一切隐藏。因此,当时只显示一张纸。隐藏/取消隐藏工作表 - VBA

我的问题是以下; 我使用的VBA代码工作正常,但有时会显示错误 Run time error '1004': Method 'Visible' of object '_Worksheet'failed ,并且当我去调试时,它显示以下debug screen

如上所述,代码工作“完美”,但有时运行时错误1004弹出。我究竟做错了什么?代码如下:

Sub Button8_Click() 
Sheet3.Visible = xlSheetVisible 
Dim sh As Worksheet 

    For Each sh In ThisWorkbook.Sheets 
     If sh.Name <> "practice group - mtd" Then 
      sh.Visible = xlSheetHidden 
     End If 
    Next sh 
End Sub 
+0

如果您试图隐藏最后一个可见表单,则会发生该错误。 Sheet3是否与名称为“practice group - mtd”的工作表相同? –

+0

此外,你的所有标签“工作表”?与图表/宏/对话框等相反。如果内存服务,它们都是“Sheet”对象,但它们并不都具有可见属性。这不是100%。 –

+0

@ s.storm不确定你在哪里“重定向”到工作表?我没有看到任何'表格(“whatever_you_Selected”)。在你分享的代码中的任何地方激活' –

回答

0

更快的解决办法,避免循环中的所有图纸: 保持某处隐藏在主菜单表单可见表的名称。 (隐藏单元格,带有FIXED位置)。 单击按钮后,如果选择的内容与可见内容不同,则取消隐藏选定内容,隐藏上一页,更新主菜单。

+0

感谢您的回答!但是,对于这个愚蠢的问题抱歉,我该怎么做呢?对于这一切我都很新颖。那么VBA代码会是什么? –