Table of contents
我们在工作中面临的最常见的错误之一是 VBA 在这篇文章中,我将告诉你为什么会出现这种错误以及如何解决这个错误。
下载实践工作手册
下载这本练习手册,在阅读本文时进行练习。
用户定义的未定义的类型.xlsm2 原因和解决方案 在Excel VBA中未定义的用户定义的类型
有 2 在Excel中经常遇到的这个错误背后的主要问题 VBA 让我们详细探讨这些问题并找出解决问题的方法。
1.声明变量时的拼写错误
这是该错误背后的主要原因。 大多数时候,该错误 "用户定义的类型未被定义" 是由于声明变量时的拼写错误造成的。
请看以下几行代码。
Sub User_Defined_Type_not_Defined() Dim Name As Strng Name = "ExcelWIKI" MsgBox Name End Sub
如果你运行这段代码,你会得到一个错误框,通知你存在的错误 "未定义的用户定义类型"。 随着它的出现,你会发现代码的第二行以蓝色突出显示,我在那里写道 "strng" 代替 "字符串" .
我希望你能明白这一点。 VBA 无法识别变量类型 "strng" 但当它发现你没有在任何地方声明它时,就会产生一个错误。
因此,在运行简单的 VBA 代码,如果你无论如何遇到这个错误,首先要检查你的变量类型的所有拼写。
2.缺乏适当的参考资料
这是该错误背后的另一个原因。 这就是缺乏正确的引用。 有时我们在代码中使用一些对象,需要从以下方面进行正确的引用 Visual Basic参考框 ...否则。 VBA 不认识这个对象。
请看以下内容 VBA 代码。
Sub User_Defined_Type_not_Defined() Dim MyDictionary As Dictionary Set MyDictionary = CreateObject("Scripting.Dictionary" ) End Sub
运行这段代码,你会得到同样的老错误 "未定义的用户定义类型"。 突出强调 字典对象 这是因为 VBA 无法识别 字典对象 ,并认为它是一个用户定义的变量,没有被错误地定义。
现在最大的问题是,如何解决这个错误? 很简单,有以下几点 2 解决这个错误的方法。
⧪ 解决方案1:从Visual Box参考框中检查先决条件参考。
这是解决这个问题的最聪明的方法。 转到 工具> 参考资料 中的按钮。 视觉基础 色带。 点击 参考文献 .
一个名为的对话框 参考文献 将打开。 滚动并找到 微软脚本运行时间 (这取决于你所使用的对象。 字典对象 需要 微软脚本运行时间 因此,在使用一个对象时,在一个 VBA 代码,你必须知道它的先决条件,以被 VBA。 请访问此链接了解更多信息。)。 检查一下。
现在回来运行代码,你将不会得到任何错误。 因为 VBA 可以识别 字典对象 这一次。
⧪ 解决方案2:将其作为一个纯对象而不是一个特定对象来声明
还有一个方法可以解决这个问题。 你可以把对象声明为一个纯对象,而不是一个 字典对象 .
注意以下几行代码。
Sub User_Defined_Type_not_Defined() Dim MyDictionary As Object Set MyDictionary = CreateObject("Scripting.Dictionary" ) End Sub
在这里我声明了一个变量 我的字典 作为一个简单的对象,而不是一个 词典。 现在,如果你运行这段代码,你将不会得到任何错误。