我有一个需要在工作中使用的复杂 Excel 电子表格。我的同事在 Windows PC 上使用该电子表格,无需特殊配置。我想在运行 Snow Leopard 的 MacBook Pro 上运行它。该电子表格包含通过互联网连接到外部 Oracle 数据库的 VBA 宏。
如果我理解正确的话,Mac 上的 Excel 无法运行 VBA 宏,因此我必须使用 Parallels。我在 Mac 上安装了 Parallels,据我所知,它运行正常。我在 Parallels 下安装了 Excel 2007。
我可以在 Parallels 中打开 Excel 电子表格并单击电子表格中的按钮来运行宏,但宏会因编译器错误而失败。我没有 VBA 宏源代码的密码,如果可能的话,我不想深入研究该级别的代码。
我知道有很多事情可能会出错,检查 VBA 代码可能会有所帮助,但我希望在不走那条路的情况下解决问题。电子表格在 Windows 上运行时无需任何特殊配置,所以我想知道是否有人知道 Parallels 下 Excel VBA 宏的任何限制,或者我可以做任何其他事情来使这个电子表格正常工作。
这是唯一阻止我在工作中使用这台 MacBook Pro 的原因。
错误信息如下:
隐藏模块中的编译错误:
clsXXXXx0020Toolx0020Ser
。当代码与此应用程序的版本、平台或架构不兼容时,通常会发生此错误。单击“帮助”获取更多信息。隐藏模块编译错误:
受保护的模块包含编译错误。由于错误位于受保护的模块中,因此无法显示。
当代码与此应用程序的版本或体系结构不兼容时,通常会发生此错误(例如,文档中的代码针对 32 位 Microsoft Office 应用程序,但它试图在 64 位 Office 上运行)。
此错误的原因和解决方法如下:
错误原因:
当受保护(隐藏)模块内的 VBA 代码中存在编译错误时,会引发此错误。由于模块受到保护,因此不会暴露特定的编译错误。
可能的解决方案:
如果您有权访问文档或项目中的 VBA 代码,请取消保护模块,然后再次运行代码以查看具体的错误。
如果您无权访问文档中的 VBA 代码,请联系文档作者以更新隐藏模块中的代码。
答案1
该宏最初也是在 Office 2007 中编写的吗?
Parallels 安装是否与您的设置相匹配,其中宏在 32 位/64 位方面有效?
除了这两个一般性问题之外,我会从网络方面开始,因为你写道
电子表格包含通过互联网连接到外部 Oracle 数据库的 VBA 宏。
Parallels 中的网络设置如何 - Office 的其他宏或网络相关功能(例如帮助部分通常建议在线搜索)是否能够连接到您的网络或互联网?
这些就是我要首先提出的问题。
答案2
由于听起来您在数据库连接级别失败了,因此您需要找出 VBA 源如何连接到 Oracle 数据库。VBA 代码是否调用 DSN 连接?DSN 是否在 Windows 中设置?它是否使用 Oracle 驱动程序?您需要 JDBC 吗?代码如何连接到 Oracle 可能会有很长的列表。如果没有这些信息,您很可能无法解决问题。