Написание ВПР в VBA, который может выполнять поиск по большим числам

#excel #vba #vlookup

#excel #vba #ВПР

Вопрос:

Я пытаюсь изменить название продукта на основе его идентификатора. Integer работает только как тип данных для меньших чисел. Код, работающий для более коротких идентификационных номеров с использованием Long, не решает проблему. Что мне нужно изменить?

Вот мой код VBA:

 Function ProdName(webID As Long)

Dim name As String

Set book2 = Workbooks("PERSONAL.xlsb")

Set r2 = book2.Sheets(2).Range("$A:$B")

name = WorksheetFunction.VLookup(webID, r2, 2, False)

ProdName = name

End Function
  

И вот таблица, которую я изучаю:

скриншот

Я также пытался поиграть с типами данных, но безрезультатно.

Заранее спасибо!

Комментарии:

1. Используйте Variant ..

2. Изменено на: Function ProdName (WebID как вариант), но по-прежнему выдает ошибку «#NUM!». Что-нибудь еще, что мне нужно изменить?

3. Работает для меня с вашими образцами данных, даже с Long , но я бы Variant все равно использовал.

4. Это очень странно. Должен ли я попробовать создать новый модуль? Вы используете модуль или модуль класса?

5. Я бы попробовал отладку, вызвав функцию изнутри a Sub , а не как UDF.