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

Это отлично даст мне "1" в столбце 14, когда слово "тест" находится где-нибудь в столбце К.

Если я изменяю строку ".Add " test ", 1" на ".Add " 21 ", 1", она возвращает только "0", хотя у меня есть "21" в столбце K.

В сети говорится, что значениями.key могут быть любые значения (текст, числа и т. Д.). Поскольку столбец K содержит только цифры (от 1 до 25), мне нужен скрипт, чтобы пометить вхождения 1 из этих чисел, и я действительно хочу использовать "scripting.dictionary", так как это самый быстрый способ.

Что я делаю не так или не "scripting.dictionary" поддерживает только цифры.

1 ответ

Решил это. Необходимо изменить строку на:

.Add 21, 1

Так 21 без кавычек.

Другие вопросы по тегам