2012-07-15 45 views
2

得到這個代碼:的Scripting.Dictionary不認識數字

Dim a, i As Long 
With Range("K1", Range("K" & Rows.Count).End(xlUp)) 
    a = .Value 
End With 
With CreateObject("Scripting.Dictionary") 
    .CompareMode = vbTextCompare 
    .Add "test", 1 
    For i = 1 To UBound(a, 1) 
     If .exists(a(i, 1)) Then 
      Cells(i, 14).Value = 1 
     Else 
      Cells(i, 14).Value = 0 
     End If 
    Next 
End With 

它完美地會給我一個柱體14「1」時,「測試」一詞是欄中任一K.

如果我將「.Add」測試「1」行改爲「.Add」21「,1」,它只返回「0」,儘管我在列K中有「21」。

網上說的是.key值可以是任何值(文本,數字等)。 由於K列只包含數字(1到25),我需要腳本來標記這些數字中的一個,我真的很想使用「scripting.dictionary」,因爲它是最快的方法。

我在做什麼錯或不是「scripting.dictionary」僅支持數字。

+0

大家好,解決了它。需要將行改爲「.Add 21,1」。所以「21」沒有引號。 – Richard 2012-07-15 06:21:45

+0

你應該發佈這個答案並接受它,以便其他人可以看到你的問題解決了,即使你自己解決了:) – JimmyPena 2012-07-16 17:35:37

回答

1

解決了它。需要改變線路:

.Add 21, 1 

所以21不帶引號。