2014-11-28 3 views
0

У меня есть книга, которую мне нужно указать в макросе. Он всегда имеет сегодняшнюю дату в имени файла. Я могу открыть его отлично со следующим сценарием:Динамическое имя файла не работает (VBA)

'Open today's PHO report 
Workbooks.Open FileName:="\\netapp02\ProcurementDocs$\PHO\PHO " & TodaysDate & ".xlsx" 

Но я также хочу, чтобы ссылаться на эту книгу для массива в формуле ВПР. Я не могу заставить его работать! Я пробовал использовать команду INDIRECT, но, похоже, она не работала. Пожалуйста, порекомендуйте. Вот код. Как мне получить правильное значение для RefFile и как я могу кодировать IFNA/VLOOKUP?

'VLOOKUP against PHO report and return Key match or the word "No" 
Range("Z2").Formula = "=IFNA(VLOOKUP(Y2,""'["" & RefFile & ""]'!$C:$D"",1,0),""NO"")" 

Спасибо.

Карл

+0

При сохранении и возобновления она сохранит вашу формулу с надлежащим сетевым путем? – CodeCamper

+0

, если вы должны были ввести формулу вручную, то что вы на самом деле вводите в ячейку. Также после того, как вы ввели формулу, закройте сетевой файл, а затем посмотрите, к чему превратилась формула. Если возможно, можете ли вы опубликовать эту формулу здесь? –

ответ

0

я сильно предположить, что RefFile является переменной в коде VBA. На данный момент вы вносите код
& RefFile & в формулу, но не ее содержимое.

Изменить этот

Range("Z2").Formula = "=IFNA(VLOOKUP(Y2,""'["" & RefFile & ""]'!... 

в этом:

Range("Z2").Formula = "=IFNA(VLOOKUP(Y2,""'[""" & RefFile & """]'!... 
+0

Да. Мне не хватало цитаты. Благодаря! –

Смежные вопросы