Vba 设置要隐藏的图纸。代码赢得';行不通

Vba 设置要隐藏的图纸。代码赢得';行不通,vba,excel,hide,visible,Vba,Excel,Hide,Visible,我在工作簿中有以下代码 Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim ws As Worksheet For Each ws In Worksheets If ws.Name <> "Main Page" Then ws.Visible = xlSheetHidden End If Next ws ThisWorkbook.Save End Sub Private子工作簿\u关闭

我在工作簿中有以下代码

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim ws As Worksheet

For Each ws In Worksheets
    If ws.Name <> "Main Page" Then
       ws.Visible = xlSheetHidden
    End If
Next ws

ThisWorkbook.Save

End Sub
Private子工作簿\u关闭前(取消为布尔值)
将ws设置为工作表
对于工作表中的每个ws
如果ws.Name是“主页”,那么
ws.Visible=xlSheetHidden
如果结束
下一个ws
此工作簿。保存
端接头
但当工作簿下次打开时,最后打开的页面仍然打开。我还没有任何其他宏或vba脚本将页面设置为未隐藏,我只是在手动进行测试

没有出现错误,代码正确地符合并运行。我甚至用断点检查循环,它确实正确地通过了每个工作表

有人能看出问题出在哪里吗?我是否遗漏了一个重要的关键词或什么?这让我发疯,比追查更糟糕;在c中#

问任何你认为有帮助的问题


马特

你应该试试这样的东西

ws.Visible = xlSheetVeryHidden

检查工作簿是否受保护。如果工作簿受保护,则必须先解除工作簿的保护

没有,仍然在那里,而且仍然非常明显代码很好,其他一些东西把它搞乱了。你想隐藏主页吗?还是其他一切?您的代码隐藏了所有其他内容。当代码运行时,您确定您在正确的工作簿中吗?是的。我现在通过将工作簿_BeforeClose事件中的确切代码移动到cmdButton事件中使其工作,并且它可以工作。一个值得考虑的,不。没有保护。当代码附加到按钮时,它可以正常工作,但由于某些原因,它无法处理BeforeClose事件。