2015-08-27 32 views
0

我有这样的代码:停止BeforeCloseEvent当工作簿靠近

Private Sub Workbook_BeforeClose(Cancel As Boolean) 
    Dim ws As Worksheet 
    Sheets("MACROS").Visible = True 
    For Each ws In ThisWorkbook.Worksheets 
     If ws.Name <> "MACROS" Then 
      ws.Visible = xlVeryHidden 
     End If 
    Next ws 
    Application.CommandBars("Ply").Enabled = True 
End Sub 

的代码显示当宏被禁用的宏片。问题是,当启用宏并且工作簿上已经完成了一些工作,并且通过单击“X”(关闭按钮)关闭该书时,它会提示保存,但会显示MACROS表。

我期待在显示保存提示时让程序保持活动状态。

有人会这么善良,请帮我修改上面的代码吗?所有和任何帮助将不胜感激!

+0

删除行'表(“宏”)可见= TRUE; – psychicebola

+0

您好,没有该行是作为宏片必须在打开的情况下,显示重要的。禁用MACROS的工作簿。我想只要工作簿在启用MACROS的情况下关闭,它就必须保持活动状态?... – juriemagic

+0

@juriemagic解释您在启用或禁用宏时意味着什么?如果你禁止运行宏,这个代码如何工作。 – DragonSamu

回答

0

删除行Sheets("MACROS").Visible = True

的代码应该是:

Private Sub Workbook_BeforeClose(Cancel As Boolean) 
    Dim ws As Worksheet 
    For Each ws In ThisWorkbook.Worksheets 
     If ws.Name <> "MACROS" Then 
      ws.Visible = xlVeryHidden 
     End If 
    Next ws 
    Application.CommandBars("Ply").Enabled = True 
End Sub 
+0

非常感谢您的帮助。这个代码存在一个小问题,因为当我关闭工作簿时,我看到object'_worksheet的“工作表可见”失败...可能只是一些小事? – juriemagic

+0

你从哪里得到错误?你是否把这个子文件放在工作簿模块?尝试设置另一个表格,而不是'宏'作为'ActiveSheet' – psychicebola

+0

xlveryhidden部分highlites黄色。但我有更严重的问题,比这更...汽车不会启动,现在一列火车撞上它....即使在禁用宏的情况下,所有的宏按钮仍然可以正常工作!! ..就好像宏启用了..在地球上如何实现这种可能性??你知道,不要担心这个线程..我是真的很烦,现在我已经厌倦了..我认为需要做的是删除7个月的努力工作,并重新安装办公室...... thanx出现在那里,您的帮助非常感谢! – juriemagic