对象错误:此密钥已与此集合的元素相关联

时间:2014-10-31 10:29:33

标签: vba ms-access object vb6 access-vba

说明: 我已经查看了这个问题的一些答案,但他们不适应我的情况。 我正在尝试在VBA中为Hex To Binary转换编写解决方案,但是我在标题中提到了错误。虽然我在这个集合中找不到与此元素相关联的任何其他键。

我的代码:

Public Function HEX2BIN(strHex As String) As String
    Dim oHexValues As Object
    Dim valueBin As String
    Dim l_strHex As Integer
    Set oHexValues = CreateObject("Scripting.Dictionary")


    oHexValues.Add 1, "0001"
    oHexValues.Add 2, "0010"
    oHexValues.Add 3, "0011"
    oHexValues.Add 4, "0100"
    oHexValues.Add 5, "1010"
    oHexValues.Add 6, "0110"
    oHexValues.Add 7, "0111"
    oHexValues.Add 8, "1000"
    oHexValues.Add 9, "1001"
    oHexValues.Add A, "1010"
    oHexValues.Add B, "1011"
    oHexValues.Add C, "1100"
    oHexValues.Add D, "1101"
    oHexValues.Add E, "1110"
    oHexValues.Add F, "1111"

valueBin = ""
l_strHex = Len(strHex)

For i = 1 To l_strHex
    charHex = Mid(strHex, i, 1)
    MsgBox "Chars:" & charHex
    If oHexValues.Exists(charHex) Then
        valueBin = valueBin & oHexValues(charHex)
    ElseIf charHex = "0" Then
        valueBin = valueBin & "0000"
    Else
        MsgBox "Invalid value!"
    End If
Next i
HEX2BIN = valueBin

End Function

错误: 此密钥已与此集合的元素相关联。调试器指向条目:

oHexValues.Add B, "1011"

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:4)

您的意思是添加String "A"而不是名为A的变量吗?用

之类的引号包装字母

oHexValues.Add "A", "1010"