Excel VBA:“xxxxx.xlsm可能包含与Excelmacrosfunction工作簿不兼容的function…”

我有一个启动Excel时打开的xlsm文件,我用一些新的代码稍微更新一次。 它工作正常。

自从几个星期前,当我保存这个文件

my_utils.xlsm可能包含的function不兼容与Excelmacrosfunction的工作簿是否要保持该工作簿的格式?

有什么方法可以知道哪些代码或function导致警告?

我可以顺序删除部分代码,最好还原添加/修改的顺序。 就我而言,这可能不是那么容易,所以我正在寻找一个可能的原因的规格,所以也许我可以马上发现它。

PS:在Excel版本或文件格式(xlsx – > xlsm)发生任何更改后,警告没有出现。 只有代码添加/更新。

编辑 :我得到了我的xlsm的简约版本,仍然给出了警告,只有一个虚拟的Public Function 。 在评论该函数并保存之后,警告消失。 取消function并保存后,警告不会回来(永远消失)。

在这里输入图像说明

首先,这不一定是你的代码…

您应该尝试将其保存为Binary .xlsb – 它和.xlsm一样好,而且速度更快。 与macros的兼容性没有什么区别(我总是使用这个文件types)

如果你没有得到一个popup – 问题修复,如果你仍然收到这个按摩,检查是否添加了一些外部对象,或格式…如果添加不兼容的代码,macros不会工作。 。

至于具体的问题

有什么方法可以知道哪些代码或function导致警告?

我不知道。 但我设法消除了这个警告。

遍历每个模块,select所有代码并对其进行评论。 保存文件。 警告消失了。 然后再遍历每个模块,取消所有代码。 警告永远消失了,代码也是一样的。 没有必要使用窗体或类模块。

神秘…