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, когда слово “тест” находится где угодно в столбце K.

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

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

Что я делаю неправильно или не поддерживает только “scripting.dictionary”.

Ответ №1

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

.Add 21, 1

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

Оцените статью
TechArks.Ru
Добавить комментарий