在UserForm属性中使用Dictionary.Exists需要提供Error 404对象

时间:2017-02-10 15:00:11

标签: vba excel-vba dictionary excel

我正在尝试在名为waitpid(3)的UserForm中使用类属性bctime来填充名为Get的字典。
一切正常,直到Let行(需要错误404对象) 注意:如果我将UBidStatus中的整个代码替换为DicOption,则代码正常工作。
这是我试图解决的Userform类中的代码。

If Not DicOption(OptName).Exists

2 个答案:

答案 0 :(得分:10)

Exists方法的调用如下:

Dictionary.Exists(Key)

所以试试

 Public Property Let ProjectOption(ByVal OptName As String, ByVal OptValue As String)
    If Not DicOption.Exists(OptName) Then
        DicOption.Add key:=OptName, Item:=OptValue
    Else
        DicOption(OptName) = OptValue
    End If
End Property

答案 1 :(得分:7)

如果您指定的密钥不存在,则Scripting.Dictionary会隐式调用其Add方法,因此如果目标是"添加或替换"指定键的值,您可以简单地替换:

If Not DicOption(OptName).Exists Then
    DicOption.Add key:=OptName, Item:=OptValue
Else
    DicOption(OptName) = OptValue
End If

使用:

DicOption.Item(OptName) = OptValue