Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA错误:此键已与此集合的元素关联_Vba_Excel - Fatal编程技术网

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

VBA错误:此键已与此集合的元素关联,vba,excel,Vba,Excel,我使用下面的代码从excel中的一个范围创建一个集合,然后用于填充userform上的列表框。几个月来,代码在两个单独的宏中运行良好,但突然两个宏都停止工作并在标题中抛出错误 Private Sub UserForm_Initialize() Dim ws As Worksheet Dim LR As Long Dim cell As Range Dim List As New Collection Dim Item As Variant Set

我使用下面的代码从excel中的一个范围创建一个集合,然后用于填充userform上的列表框。几个月来,代码在两个单独的宏中运行良好,但突然两个宏都停止工作并在标题中抛出错误

Private Sub UserForm_Initialize()

    Dim ws As Worksheet
    Dim LR As Long
    Dim cell As Range
    Dim List As New Collection
    Dim Item As Variant
    Set ws = Worksheets("ExpenseCATs")

    With ws
       LR = .Cells(.Rows.Count, 1).End(xlUp).Row

       For Each cell In .Range("A2:A" & LR)
            With cell
                On Error Resume Next
                List.Add .Text, CStr(.Value)   <---------- Error
                On Error GoTo 0
            End With
        Next cell

        For Each Item In List
                        EXPListBox1.AddItem Item
        Next Item

    End With
这不会引发错误,但列表框不会填充唯一值,而是列出单元格范围内的所有项目

我看过其他关于这个错误的帖子,但是没有解决。任何人都可以建议如何修复,并且对可能停止工作的原因感兴趣。

在VBA项目中,选项-->常规-->错误捕获,检查
未处理错误时中断


:)

我相信在将项目添加到集合中时会发生此错误,并且以前使用过密钥。add(key,value)与Dictionary对象的顺序相反

Collection.add(item [,Key])
Dictionary.add(Key, item)  
例如:

Dim c As New Collection
c.add "Value1", Key:="one"
c.add "Value2", Key:="two"
c.add "Value3", Key:="one" '<----- this is where the error occurs because of duplicate key
Dim c作为新集合
c、 添加“Value1”,键:=“一”
c、 添加“Value2”,键:=“2”

c、 添加“Value3”,键:=“one”’谢谢,但在我的情况下,这是错误捕获设置,如上所述。这将保存到工作簿中还是我的Excel实例的本地?
Dim c As New Collection
c.add "Value1", Key:="one"
c.add "Value2", Key:="two"
c.add "Value3", Key:="one" '<----- this is where the error occurs because of duplicate key