我正在尝试在子中使用的函数中创建字典,但出现错误
“未定义用户定义类型”。
我不知道这是否很明显,但我看不出有什么问题。
我已经简化了代码以制作一个简单的代码:
Public Function create_dic(ByVal var As String) As Dictionary
my_dic.CompareMode = vbTextCompare
If var = "test" Then
my_dic.Add Key:="var 1", Item:=1
Else
my_dic.Add Key:="var 2", Item:=2
End If
Set create_dic = my_dic
End Function
Sub prueba()
Set respuesta = create_dic("test")
End Sub
您是否设置了对“Microsoft Scripting Runtime”的引用?Dictionary
不是标准 VBA 的一部分,需要该库。请参阅VBA 字典参考。
此外,当您使用my_dic.CompareMode
它时,它还不存在。确保正确使用Option Explicit
和声明所有变量。此外,您需要先创建一个新的字典对象,然后才能使用它。
Option Explicit
Public Function create_dic(ByVal var As String) As Dictionary
Dim my_dic As Dictionary ' declare variable type
Set my_dic = New Dictionary ' create a new dictionary object
my_dic.CompareMode = vbTextCompare
If var = "test" Then
my_dic.Add Key:="var 1", Item:=1
Else
my_dic.Add Key:="var 2", Item:=2
End If
Set create_dic = my_dic
End Function
Public Sub prueba()
Dim respuesta As Dictionary ' declare variable type
Set respuesta = create_dic("test")
End Sub
有关字典的更多信息,这是一个很好的参考:Excel VBA 字典 - 完整指南。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句