3

在开发一些 Excel vba 代码的过程中,在我进入的每个其他迭代中,添加一些代码然后保存文件,下次打开它时,我会收到“找不到文件”错误。宏设置为在打开文件时自动运行代码。

为了修复它,我将所有代码(模块和类以及启动代码)复制到了一个新的空白 Excel 文件中。我保存了excel宏文件,它运行良好。

Excel 2003 和 2007 都会发生这种情况。这里发生了什么?

4

3 回答 3

0

我的精神力量告诉我,您在更改当前目录时依赖于相对路径。

于 2010-05-28T18:59:58.083 回答
0

不知道你是否已经解决了你的问题。

一种可能性是您的模块之一太长。

VBA 是 64kb 的编译大小限制。如果您超过该值,“应该”会警告您,但通常会失败。

找出你拥有的最长的模块,将一些功能移到另一个模块,看看它是否有帮助。

我经常有这个。

于 2021-04-16T03:54:16.800 回答
0

我看到了类似的现象,但我不确定原因是否相同。

昨天,每次我在工作簿中添加 Workbook_Open 过程、保存并重新打开它时,我都会收到“找不到文件”错误(未指定特定文件)。然后是“我们发现 [工作簿名称] 中的某些内容存在问题。您希望我们尽可能多地恢复吗?”。如果我对恢复说“是”,我发现所有 VBA 代码都从工作簿中消失了。

事实证明,这是由我的病毒检查器 (BitDefender) 引起的,它认为我的代码是恶意软件,并且正在从工作簿中删除代码。我在具有不同病毒检查器(BullGuard)的 PC 上尝试了它,它做了类似的事情。至少 BullGuard 有礼貌地告诉我它正在修改我的文件。BitDefender 根本没有给我任何线索!

一般来说,作为一个为许多不同的客户做 VBA 的人,我发现越来越多的问题是病毒检查程序阻碍了我的工作。

于 2020-10-30T09:06:12.593 回答