Это старый вопрос. Я внимательно изучил все ответы и комментарии, проверил решения на производительность.
Я предложил самый быстрый вариант для моей среды, который не выходит из строя, когда в коллекции есть объекты и примитивы.
Public Function ExistsInCollection(col As Collection, key As Variant) As Boolean
On Error GoTo err
ExistsInCollection = True
IsObject(col.item(key))
Exit Function
err:
ExistsInCollection = False
End Function
Кроме того, это решение не зависит от жестко закодированных значений ошибок. Таким образом, параметр col As Collection
может быть заменен некоторой другой переменной типа коллекции, и функция все еще должна работать. Например, в моем текущем проекте он будет иметь вид col As ListColumns
.