错误此键已与此集合的元素相关联

Gau*_*nga 10 excel vba excel-vba

我正在研究vba宏.我试图使用字典.但它正在error 457调试指向toprow.Add ActiveCell.value, val.任何人都可以告诉这个问题吗?我甚Cstr(activecell.value), Cstr(val)至在类似问题的答案之一中提到过.

Dim toprow As New Dictionary, Dictkey As Variant
Dim val As String

Range("A1").Activate 
i = 0
Do Until i = ColLen
    val = Chr(65 + i)
    toprow.Add ActiveCell.value, val
    i = i + 1
    ActiveCell.Offset(0, 1).Activate
Loop
Run Code Online (Sandbox Code Playgroud)

Aut*_*aos 21

Add只有当密钥不存在时,才能使用带字典的密钥.无意中您可以在之前输入密钥,或者您是watching调试监视器的密钥,并立即创建密钥.(=如果您在字典中观看某个键,如果它尚不存在则会创建它).

你必须

  • 确保您没有使用调试器观察密钥
  • 通过测试创建唯一条目d.Exists(keyname)然后使用该d.Add keyname, value方法
  • 或者,您可以默认使用覆盖现有密钥 d.Item(keyname) = value

  • 'd.Item(keyname)= value`的+1 (4认同)