我有一个功能
Dim dict As Object
varray = Range("B4:B" & finalRow - 1).Value
dict = convertToDict(varray)
我试图从子
调用此函数Object
但它会引发错误:
运行时错误450,错误的参数数量或无效的属性
我在这里犯的错误是什么?
我正在传递变体,结果是template="instance('fr-form-instance')"
。
答案 0 :(得分:2)
因为您正在处理 对象 ,所以在功能和子资源中都需要设置:
Function convertToDict(arrayIp As Variant) As Object
Dim dict As Object
Set dict = CreateObject("scripting.dictionary")
For Each element In arrayIp
If dict.exists(element) Then
dict.Item(element) = dict.Item(element) + 1
Else
dict.Add element, 1
End If
Next
Set convertToDict = dict
End Function
Sub qwerty()
Dim dict As Object
finalRow = 10
varray = Range("B4:B" & finalRow - 1).Value
Set dict = convertToDict(varray)
End Sub
答案 1 :(得分:1)
由于dict
是一个对象,因此在分配时需要使用Set
。试试
Set dict = convertToDict(varray)