我有一个VBA函数应该将Dictionary作为参数:
Function ShowDict(Dict1 As Dictionary)
For Each x In Dict1
MsgBox (Dict1.Item(x))
Next
End Function
我试图通过以下方式调用它:
Dim Dict As Dictionary
Set Dict = Dictionary
Dict.Add "Owner", "John"
Dict.Add "Employee", "Sam"
ShowDict (Dict)
在定义词典之前,我确实从References中选择了Microsoft Scripting References。但是,当我尝试使用'Dict'作为参数调用函数时,我得到一个编译错误,声明'参数不是可选的'。任何人都可以帮助我吗?
答案 0 :(得分:5)
进行这两项更改(New Dictionary
和ShowDict Dict
):
Dim Dict As Dictionary
'Set Dict = Dictionary
Set Dict = New Dictionary
Dict.Add "Owner", "John"
Dict.Add "Employee", "Sam"
'ShowDict (Dict)
ShowDict Dict
另外,我建议您将Option Explicit
添加到代码模块的声明部分,并在Dim x
函数中添加ShowDict
。缺少这些不会导致眼前的问题,但添加它们可以防止将来出现其他问题。