このコードを取得しました:
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"test"、1」の行を「.Add "21"、1」に変更すると、列Kに「21」がありますが「0」のみが返されます。
ネット上では、.key値は任意の値(テキスト、数値など)にすることができると言われています。列Kには数字(1から25)しか含まれていないため、これらの数字の1つの出現をマークするスクリプトが必要であり、「scripting.dictionary」を使用するのが最も速い方法です。
私が間違っていること、または「scripting.dictionary」が番号のみをサポートしていないこと。