代码如下:
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当单词"test“在列K中的任何位置时,它会完美地在列14中给我一个"1”。
如果我将".Add "test",1“行更改为".Add "21",1”,它只返回"0“,尽管我在列K中有"21”。
在网上,is表示.key值可以是任何值(文本、数字等)。由于列K只包含数字(1到25),我需要脚本来标记这些数字中的1个的出现,我真的想使用"scripting.dictionary“,因为它是最快的方法。
我做错了什么,或者"scripting.dictionary“只支持数字。
发布于 2012-07-18 16:31:57
解决了它。需要将行更改为:
.Add 21, 1所以不带引号的21。
https://stackoverflow.com/questions/11489659
复制相似问题