【发布时间】:2013-11-30 04:06:46
【问题描述】:
我试图在关闭 Excel 时隐藏工作簿中的所有工作表。我正在使用的代码隐藏所有工作表,直到它到达最后一张。然后它给了我一个运行时错误'1004'Method'Visible'of'Object'_Worksheet failed。我想我可能需要很多张,所以我删除了大部分,除了更少的张之外没有任何变化。这是我尝试使用的代码。我把它放在“ThisWorkbook”中。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim sh As Worksheet
For Each sh In Sheets
If StrComp(sh.Name, C_INTRO_SHEETNAME, vbTextCompare) = 0 Then
sh.Visible = xlSheetVisible
Else
sh.Visible = xlSheetVeryHidden
End If
Next sh
ActiveWorkbook.Sheets("Welcome").Visible = True
SaveState
End Sub
我正在使用ActiveWorkbook.Sheets("Welcome").Visible = True 来取消隐藏解释如何启用宏的欢迎表,然后我将其保存,因此当它打开时,我只看到欢迎表。当它打开时,我使用此代码取消隐藏工作表并隐藏欢迎表。
Private Sub Workbook_Open()
Dim sh As Worksheet
For Each sh In Sheets
sh.Visible = True
Next sh
ActiveWorkbook.Sheets("Welcome").Visible = xlSheetVeryHidden
Worksheets("Service").Protect UserInterfaceOnly:=True
Worksheets("Service").Activate
End Sub
希望这会在他们启用宏后发生,否则无需取消隐藏其他工作表。
【问题讨论】:
-
隐藏所有工作表除了欢迎表。 Excel 始终要求工作簿中至少有一个工作表可见。
-
我根据您的建议更改了代码并且它有效。将其发布为答案,我会接受。谢谢 rdhs!