2017-02-09 32 views
1

我想使用集合來計算不同的數字。部分代碼如下:使用集合計算不同的數字

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),CountCSIDDistinct值爲0,而期望值爲2.有人可以幫我解決問題嗎?必須使用集合,不能使用字典或任何其他數據結構。

回答

0

主要的問題似乎是如何將項目添加到集合。如果您註釋掉On Error Resume Next一行,您將會看到錯誤。

集合添加方法的定義是這樣的: enter image description here

通過這樣的:CollecUniqueCSID.Add a, a你說a是價值的關鍵。問題是密鑰需要是一個字符串,並輸入一個整數。

如果這是你真正想要的,然後投給這樣的字符串的整:

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

,如果你有這可能是一個重複鍵當然這將拋出一個錯誤,爲什麼你有On Error Resume Next線爲了跳過重複。


如果您正在尋找存儲就像一個XY點這兩個值,而是基於一個數組:

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

更改附加聲明如下工作: CollecUniqueCSID.Add項目:= A,鑰匙:= CStr(a) 非常感謝你@Portland Runner –