имя рабочего листа как искомое значение для Vlookup

Для моего макроса отправки электронной почты я хотел бы использовать vlookup, где искомое значение — это имя вкладки. Используя имя вкладки, я получу адрес электронной почты с одного из рабочих листов. К сожалению, мой код не работает:

Sub znajdzadres()
Dim ws As Worksheet
Dim eadr As Variant
Dim nameW As Variant
nameW = ws.Name

eadr = "Application.WorksheetFunction.VLookup([nameW],DOSTAWCY!R2C1:R83C3,3,0)"




End Sub

person Gokuba    schedule 29.08.2018    source источник


Ответы (1)


Не заключайте формулу в кавычки при применении функции рабочего листа и применяйте строку var как есть с соответствующей ссылкой на рабочий лист/диапазон.

Dim eadr As Variant
Dim nameW As Variant

nameW = ActiveSheet.Name

eadr = Application.WorksheetFunction.VLookup(nameW, worksheets("DOSTAWCY").range("A2:C83"), 3, 0)

debug.print eadr 
person Community    schedule 29.08.2018
comment
Не могли бы вы уточнить, пожалуйста? @Jeeped Sub znajdzadres() Dim ws As Worksheet Dim eadr As Variant Dim nameW As Variant nameW = ActiveSheet.Name eadr = Application.WorksheetFunction.VLookup(nameW, DOSTAWCY!R2C1:R83C3, 3, 0) Debug.Print eadr End Sub - person Gokuba; 29.08.2018
comment
Да, рабочий лист и диапазон не должны были быть оставлены в качестве синтаксиса формулы рабочего листа; Я обновил. - person ; 29.08.2018
comment
Время выполнения 91 сейчас. Запрос отладки nameW - person Gokuba; 29.08.2018
comment
У меня отлично работает, когда я создаю лист с именем DOSTAWCY с таблицей, содержащей имя активного листа в столбце A. - person ; 29.08.2018
comment
Сеет NameW как пустой и не может продолжить - person Gokuba; 29.08.2018
comment
Беру обратно, работает как шарм!!!!!!!!!!!!!!!!!!! СПАСИБО @Jeeped - person Gokuba; 29.08.2018