2015-02-20 6 views
0

У меня возникли проблемы с использованием VBA для вставки формулы vlookup в столбец. Я получаю сообщение об ошибке «1004»: «Определенная приложением или объектная ошибка». Я подозреваю, что это может быть проблемой с «двойными кавычками». Я провел некоторое исследование по этому вопросу, но мне все равно не удается оборачивать голову, когда нужны двойные кавычки, а когда нет. Кроме того, я использую динамическую переменную даты (TodaysDate), строку, определяемую с помощью = Format (Date, "mm-dd-yyyy"). Ниже строки кода, который не работает:Использование Excel VBA для вставки формулы Vlookup

Range("Y2:Y" & RowCount).Formula = "=IF(ISNA(VLOOKUP(X2,""'[PHO """ & TodaysDate & """.xlsx]Detail'!$C:$D""),1,FALSE)),""Yes"",""No"")" 
+0

Распечатайте строку, которую вы пытаетесь поместить в fomula в окне отладки. Это то, что вы хотите? Правильно ли указано название книги? – Degustaf

+0

Как использовать окно отладки? Извините, я родственник noob. –

+0

Убедитесь, что открытое окно открыто (Ctrl-G), затем добавьте 'Debug.Print '= IF (..." 'перед строкой, которая выдает ошибку. Она будет распечатана в ближайшем окне – Degustaf

ответ

0

Проработав на одно и то же на прошлой неделе я нашел, что это было легче присвоить имя файла (и в моем случае нахождения) переменной и поместить это в vlookup вместо того, чтобы поместить все это внутри. Например, я сделал следующее и преодолел это препятствие.

filename1 = "C:\Users\me\Documents\Custom Office Templates\DataValidation.xlsx" & "Sheet1'!$A:$C" 

ActiveWorkbook.Worksheets("PipelineData").Range("I2:I" & lrow) = "=VLOOKUP(trim(A2),'" & filename1 & " ,2,FALSE)" 

так у вас может быть

filename = "Pho" & TodaysDate & ".xlsx" & "Detail'!$C$D" 
Range("Y2:Y" & RowCount).Formula = "=IF(ISNA(VLOOKUP(X2,'" & filename & "),1,FALSE)),""Yes"",""No"")" 

Dont»знать, если это имеет значение как ответ, но это может помочь вам.

+0

Спасибо за предложение, мистер Бангл. Я буду использовать это в будущем. –

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