VBA函数 - 参数不可选

Rob*_*ato 10 excel vba

Public Function RETURN_Equipment(Optional category As String) As Collection
    Dim config As classConfiguration
    Set config = New classConfiguration

    Dim item As classItem
    Set item = New classItem

    Dim myCollection As Collection
    Set myCollection = New Collection

    For Each config In Configurations
        For Each item In config.colItems
            If IsMissing(category) Then   
                myCollection.add item
            ElseIf InStr(category, "mainframe") <> 0 And item.category = "mainframe" Then
                myCollection.add item
                MsgBox "Fired!"                
            ElseIf category = "accessory" And item.category = "accessory" Then
            Else
            End If
        Next
    Next

    RETURN_Equipment = myCollection
End Function
Run Code Online (Sandbox Code Playgroud)

我一直在

编译错误:
参数不是可选的

我在最后一行得到了错误

RETURN_Equipment = myCollection
Run Code Online (Sandbox Code Playgroud)

我理解错误信息,它告诉我我没有填写参数.但我只有一个参数,我已经声明它是可选的.看起来代码认为我试图从函数中调用函数?

是什么赋予了?

Bra*_*rad 28

无论何时分配对象,都需要使用set关键字.

set RETURN_Equipment = myCollection


use*_*861 7

我收到此错误是因为我在尝试从函数返回结果时使用了错误的函数名称.我这样做:

Function MyFuncA(arg as String)
    MyFuncB = arg 'The problem is I'm using MyFuncB instead of MyFuncA
End Function
Run Code Online (Sandbox Code Playgroud)

发生这种情况是因为我从其他地方复制了一个函数并更改了名称,但没有更改返回语句.这不是OP的问题,但我收到了相同的错误消息.