使用集合计算不同的数字

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

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 

这不起作用。 对于input(1,1,2,2),CountCSIDDistinct值为0,而期望值为2.有人可以帮我解决吗? 必须使用集合,不能使用字典或任何其他数据结构。

主要的问题似乎是如何将项目添加到集合。 如果你注释掉On Error Resume Next行,你会看到错误。

集合添加方法定义如下所示: 在这里输入图像说明

通过这个: CollecUniqueCSID.Add a, a你说的a是价值和关键。 问题是关键需要是一个string,并input一个整数。

如果这是你真正想要的然后把整数像这样的string:

 CollecUniqueCSID.Add Item:=a, Key:=CStr(a) 

这当然会抛出一个错误,如果你有一个重复的键,这可能是为什么你有On Error Resume Next行为了跳过重复。


如果您正在寻找像xy点那样存储两个值,请使用数组:

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