症状
这是编译Excel VBA 项目时特有的症状。出现以下错误:
User-defined type not defined
但是,编译器不会突出显示产生此错误的代码,因此我无法确定问题所在。
我已经知道并尝试过的
这是一个“用户定义的类型未定义”错误,我之前遇到过一些简单的问题,例如命名某些东西As Strig
而不是As String
. 但是,此特定错误仅在Debug > Compile VBAProject
菜单选项期间弹出,并且当弹出错误消息框时,它不会突出显示发生错误的代码行。
经过大量研究,我发现这个错误可能与缺少引用有关,我已经排除了这一点,因为我已经包含了所有需要的引用和工具箱对象。
为了确保我没有遗漏任何明显的遗漏Dim
语句,我已将其添加Option Explicit
到所有代码页(包括表单)中,以确保没有遗漏任何内容。运行编译时仍然显示错误。
还有一个已知的错误,指出由于VB6项目使用二进制兼容性而已知会发生此问题:
关闭二进制兼容性并编译项目。Visual Basic 将突出显示包含未定义的用户定义类型的代码行。解决问题后,可以重新打开二进制兼容性。
我通过这个问题和答案找到了这篇文章,但是,我在标准 Excel VBA编辑器中找不到这个选项。
帮助拯救我和其他人的理智!
我从谷歌搜索和其他问题中知道,我不是唯一一个遇到这个问题的人。
我曾尝试手动浏览代码,但行数太多,无法做到这一点。
有没有办法在 Excel VBA 项目中关闭二进制兼容性?如果人们无法调试到他们需要更改的内容,他们如何找到这个有问题的代码行?任何帮助都会很可爱!
先感谢您。
编辑: 我找到了有问题的代码行,所以我的特定问题得到了解决删除该特定行后问题仍然存在 - 它是在其代码中引用的表单上的拼写错误的控件名称。这仍然不能解决您将如何找到这个有问题的代码的特定问题。当这个错误发生时,我们是否能够找到一种找到有问题的代码的好方法,以便将来的其他人可以避免这种痛苦?