在 Excel 2007 中打开工作簿时编译错误

Posted

技术标签:

【中文标题】在 Excel 2007 中打开工作簿时编译错误【英文标题】:Compile Error Opening Workbook in Excel 2007 【发布时间】:2015-12-07 23:50:27 【问题描述】:

我正在运行的代码存储在 ThisWorkbook 中。它最初是 Private Sub Workbook_Activate 和 Private Sub Workbook_Deactivate。在打开的工作簿之间切换时,这会导致一些意外结果。所以我将代码更改为下面的内容。直到现在,我才收到一条编译错误消息(当我收到此错误消息时,Private Sub Workbook_BeforeClose 会突出显示):

编译错误:

过程声明与同名事件或过程的描述不匹配。

我在 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 参数可让您阻止工作簿关闭 - 例如如果没有满足某些条件。将 Cancel 设置为 True 会阻止工作簿关闭 - 请参阅 Workbook.BeforeClose documentation

【讨论】:

谢谢 barrowc。我已经下班了,明天早上会试试。如果这可行,我会给你绿色的复选标记。与此同时,Workbook_Open 中是否还有什么需要添加的? Workbook.Open 不带任何参数,因此无需更改该参数 再次感谢 barrowc。进行了建议的更改,并按要求进行了所有工作。感谢您的帮助!

以上是关于在 Excel 2007 中打开工作簿时编译错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 C# 代码打开 Excel 工作簿时出错

打开 openpyxl 保存的工作簿时 Excel 有不可读的内容

如何用2007WPS excel 进行数据分析?如何安装啥加载项,

我可以在打开的工作簿上编译 VBA 吗?

VB6 程序无法打开 Excel 2007,未注册自动化错误库

excel跨表格引用遇到的两个问题?