返回字典时参数不是可选错误

时间:2015-07-08 22:18:10

标签: excel vba object dictionary arguments

我在VBA中有以下代码,我正在尝试捕获由第一个函数Parent返回的字典对象,该行显示为“Set Parents = Parents()”,但我一直得到Argument不是可选错误。

互联网上的每个人都说这通常是因为缺少Set关键字,但在这种情况下却没有。非常感谢任何帮助,谢谢!

require( dirname( __FILE__ ) . '/wp-load.php' );

1 个答案:

答案 0 :(得分:0)

我建议将你的函数更改为sub并将预先声明的字典对象作为参数传递。

Public Sub constructParents(dPRNTs As Dictionary)

    dPRNTs.RemoveAll
    dPRNTs.CompareMode = TextCompare

    dPRNTs.Add Key:="Joe & Jill", Item:=100
    dPRNTs.Add Key:="Sam & Sally", Item:=200
    dPRNTs.Add Key:="Dave & Debbie", Item:=300
    dPRNTs.Add Key:="Bob & Jane", Item:=400
    Debug.Print dPRNTs.Count

End Sub

Public Sub ComputeChanges()

    Dim dParents As New Dictionary, vKEY As Variant

    constructParents dParents
    'optionally use this if it makes more sense
    'Call constructParents(dParents)

    For Each vKEY In dParents
        Debug.Print "key: " & vKEY & ", item: " & dParents.Item(vKEY)
    Next vKEY

End Sub

我已经简化了您的代码,以便我不必完全复制环境,但我希望您可以为自己的目的转录此方法。