Excel 使用集合计算不同的数字

Excel 使用集合计算不同的数字,excel,vba,Excel,Vba,我试图使用集合来计算不同的数字。部分代码如下: With ActiveSheet ArrCSID = .Range(.Cells(2, "A"), .Cells(.Rows.Count, "A").End(xlUp)).Value2 Columns("A").Interior.ColorIndex = xlNone On Error Resume Next For Each a In ArrCSID CollecUniqueCSID.Add a, a Next For d = LBo

我试图使用集合来计算不同的数字。部分代码如下:

With ActiveSheet
ArrCSID = .Range(.Cells(2, "A"), .Cells(.Rows.Count, "A").End(xlUp)).Value2
Columns("A").Interior.ColorIndex = xlNone

On Error Resume Next
For Each a In ArrCSID
    CollecUniqueCSID.Add a, a
Next

For d = LBound(ArrCSID, 1) To UBound(ArrCSID, 1)
    <<Some validation check on the values of ArrCSID>>
Next d

CountCSIDTotal = d - 1
CountCSIDDistinct = CollecUniqueCSID.Count

这是行不通的。对于输入1,1,2,2,CountCsidInstinct值为0,而预期值为2。有人能帮我修理一下吗?必须使用集合,不能使用字典或任何其他数据结构。

主要问题似乎是如何将项目添加到集合中。如果您在下一行中注释掉错误,您将开始看到错误

集合添加方法定义如下所示:

通过这个:CollecUniqueCSID.Add a,a你说a是值和键。问题是,密钥必须是字符串,并且您需要输入一个整数

如果这是您真正想要的,则将整数转换为如下字符串:

CollecUniqueCSID.Add Item:=a, Key:=CStr(a)
如果您有一个重复的密钥,这当然会抛出一个错误,这可能就是为什么您在下一行继续错误以跳过重复项的原因

如果要像xy点一样存储这两个值,请改用数组:

CollecUniqueCSID.Add Item:=Array(a, a)

主要问题似乎是如何将项目添加到集合中。如果您在下一行中注释掉错误,您将开始看到错误

集合添加方法定义如下所示:

通过这个:CollecUniqueCSID.Add a,a你说a是值和键。问题是,密钥必须是字符串,并且您需要输入一个整数

如果这是您真正想要的,则将整数转换为如下字符串:

CollecUniqueCSID.Add Item:=a, Key:=CStr(a)
如果您有一个重复的密钥,这当然会抛出一个错误,这可能就是为什么您在下一行继续错误以跳过重复项的原因

如果要像xy点一样存储这两个值,请改用数组:

CollecUniqueCSID.Add Item:=Array(a, a)

按如下方式更改add语句有效:CollecUniqueCSID.add Item:=a,Key:=CStra非常感谢@Portland Runner按如下方式更改add语句有效:CollecUniqueCSID.add Item:=a,Key:=CStra非常感谢@Portland Runner