scripting.dictionary无法识别数字

时间:2012-07-15 05:25:06

标签: excel-vba scripting.dictionary vba excel

得到了这段代码:

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

当“测试”一词出现在K列的任何地方时,它在第14栏中给我一个“1”。

如果我将“.Add”测试“,1”行改为“.Add”21“,1”它只返回“0”,尽管我在K列中有“21”。

在网上说.key值可以是任何值(文本,数字等)。 由于列K只包含数字(1到25),我需要脚本来标记其中1个数字的出现,我真的想使用“scripting.dictionary”,因为这是最快的方法。

我做错了什么或者“scripting.dictionary”只支持数字。

1 个答案:

答案 0 :(得分:1)

解决了它。需要将该行更改为:

.Add 21, 1

所以21没有引号。