首页 > 解决方案 > 当所有参数都指定且非空时,为什么我会收到编译错误 Argument not optional?

问题描述

我有一个看起来像这样的项目:

Function boi(sheet As Worksheet) As Scripting.Dictionary
Set my = New Scripting.Dictionary
'actually some stuff with the sheet
my.Add Key:="Foo", Item:="Bar"

boi = my
End Function


Sub test()
Dim tsheet As Worksheet
Set tsheet = Sheets("INPUT_OLD_DATA")
MsgBox (boi(tsheet)("Foo"))

当我尝试运行 test() 时,它给了我一个 Compile error Argument not optional on the line boi = my。我不明白如何在没有调用函数的行上出现 Argument not optional 错误。由于它实际上并没有到达这条线boi = my,我也不认为错误可能是由于无效的返回。

我来自 Python/Javascript/Java,如果这是一个非常菜鸟的问题,请原谅我。:)

标签: excelvba

解决方案


boi 是一个对象,所以你必须

SET boi = my

推荐阅读