2015-12-07 65 views
0

我有一个运行的代码存储在ThisWorkbook中。它最初是Private Sub Workbook_Activate和Private Sub Workbook_Deactivate。这在切换打开的工作簿时会导致一些意外的结果。所以我已将代码更改为以下内容。只是现在,我得到的是说,一个编译错误消息(当我得到这个错误信息的私人小组Workbook_BeforeClose高亮显示):编译错误打开Excel 2007中的工作簿

编译错误:

过程声明不匹配事件或过程具有相同的描述名称。

在VBA中我不够精明,无法理解这个错误信息或者很好的解决方法。欢迎所有的帮助和建议。

Private Sub Workbook_Open() 
    Call AddToCellMenu 
End Sub 

Private Sub Workbook_BeforeClose() 
    Call DeleteFromCellMenu 
    Call DeletePopUpMenu 
End Sub 

回答

1

它应该是:

Private Sub Workbook_BeforeClose(Cancel As Boolean) 

Cancel参数是有让你避免工作簿从关闭 - 例如如果某些条件未得到满足。将取消设置为True会停止工作簿关闭 - 请参阅Workbook.BeforeClose documentation

+0

谢谢barrowc。我已经离开了一天的工作,并会在早上尝试。如果这样做,我会给你绿色的复选标记。同时,还有什么应该添加到Workbook_Open中? –

+0

[Workbook.Open](https://msdn.microsoft.com/EN-US/library/office/ff196215.aspx)不带任何参数,因此不需要更改那一个 – barrowc

+0

再次感谢barrowc。提出建议的更改,并按要求运行。感谢帮助! –