2

このコードを取得しました:

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」が番号のみをサポートしていないこと。

4

1 に答える 1

1

解決しました。行を次のように変更する必要があります。

.Add 21, 1

したがって21、引用符なしで。

于 2012-07-18T08:31:56.540 に答える