【发布时间】:2015-10-09 04:47:51
【问题描述】:
我正在尝试运行使用 Excel 2010 开发的 Excel 宏。它在安装 Office 2013 之前运行良好。安装 Office 2013 后,我收到此编译器错误:
“隐藏模块中的编译器错误:modFunc。此错误通常发生在代码与此应用程序的版本、平台或架构不兼容时。”
由于 VBA 项目较早被锁定,因此我“取消保护/解锁”该项目。 在此之后我开始收到此错误:
“未找到方法或数据成员”
我在我的模块中添加了这段代码:
#If VBA7 Then
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)
#Else
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If
现在当我编译 VBA 项目时,我得到这个编译错误:
“对象库无效或包含对无法找到的对象定义的引用”
项目中的以下引用:
- Visual Basic for Applications。
- Microsoft Excel 15.0 对象库。
- Microsoft Forms 2.0 对象库。
- Microsoft Office 15.0 对象库。
- OLE 自动化
我已经尝试删除DEL /S /A:H /A:-H *.EXD 的所有.exd 文件。
还尝试注销和注册“mscomctl.ocx”。
这些解决方案似乎都不适合我。 这个宏在一些机器上运行良好,但在其他机器上却不行。
我已经收到“对象库无效”错误有一段时间了。
有人对此有解决方案吗?
【问题讨论】:
-
您在用户窗体上有哪些控件,您使用的是 64 位 Office?
-
@Rory:我使用的是 32 位办公室。该项目没有任何用户表单。
-
为什么要引用 MSForms 呢?
-
@Rory:工作表中使用了一些 Button、Dropdown 控件。
-
这些是唯一的控件类型吗?另外,您确定在所有 Office 应用程序关闭的情况下删除了 所有 C 盘上的 .exd 文件吗?
标签: vba excel excel-2013