首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >运行任何宏时发生“模块中的编译错误”[Excel VBA]

运行任何宏时发生“模块中的编译错误”[Excel VBA]
EN

Stack Overflow用户
提问于 2017-04-26 01:55:02
回答 1查看 1.9K关注 0票数 0

在尝试运行以前工作的工作簿中的任何宏时,我遇到以下错误:

在做了各种VBA开发之后,它在前一天做了最后的保存和关闭,但是当我今天早上打开工作簿时,我收到了上面提到的错误。错误中引用的模块是在Workbook_Open操作中执行的函数。

我仍然能够访问VBA编辑器并尝试进行一些调试,这本质上是注释掉引用的模块的一部分,直到错误不再出现。尽管进行了这些工作,但每当尝试运行新宏时,都会继续显示错误。

这个错误似乎是由于发生了某种类型的文件损坏而导致的,直到文件关闭并在第二天重新打开时才显现出来。我恢复了前一天早上早些时候的自动备份版本,它打开时完全正常,没有错误(丢失了大约4个小时的工作,但总比完全丢失文件要好)。此还原文件的宏功能正常,但似乎已损坏的文件给出了编译错误(并且这些宏在两个文件版本之间的4小时内未被修改)。这进一步证实了这不是代码的改变,而是VBA代码结构的某种损坏。

还有没有人遇到过这个问题,并且知道从哪里开始恢复最新的文件?

EN

回答 1

Stack Overflow用户

发布于 2017-04-26 01:55:02

在恢复的文件中重新构建模块时,我意识到前一天我从一个工作表对象复制并粘贴了一些代码(使用Ctrl-A、Ctrl-C和Ctrl-V)到一个模块(我原本希望在导出工作表时代码能够随工作表一起迁移,然后改变主意,希望工作簿中的其他工作表可以访问这些代码,同时牺牲了将代码与导出的工作表一起迁移的能力)。

当我在VBA编辑器中执行复制和粘贴操作时,选择列表中的宏(将宏指配给shape对象时)将以模块名称作为子地址列出宏(类似于Sheet对象子地址在工作表中显示为"Sheet1.ExampleSub")。我的潜水艇显示为"NewModule.ExampleSub",当时我认为这没什么,除了它只是一种奇怪/怪异,但不是什么大问题。在将这些宏分配给各种形状对象后,它们测试正常,我继续我的工作。我不能在那之后的任何时候关闭和重新打开工作簿,这就是为什么直到第二天我才遇到任何编译错误的原因。

这是我能想到的唯一会导致我得到的工作簿结构错误的东西,现在我已经在恢复的文件版本中重新创建了模块,宏工作正常,文件关闭并重新打开,没有错误或问题。我仍然不确定为什么在Sheet对象中执行Ctrl-A选择代码和在Module中复制-粘贴会破坏工作簿结构,但在这种情况下似乎已经这样做了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43617792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档