VBA с использованием vlookup косвенного диапазона для формулы в ячейке

Я уверен, что это ошибка в том, как я использую цитаты и апострофы, но хоть убей, я не могу это исправить. Я запускаю цикл в VBA, чтобы добавить vlookup в косвенный диапазон. Когда я просто использую косвенную ячейку на основе номера строки, в которой я нахожусь, у меня нет ошибок (см. Ниже):

For n = 6 To 77
    Range("A" & n).Formula = "=IF(INDIRECT(""'"" & B1 & ""'!A" & n & """)="""","""",INDIRECT(""'"" & B1 & ""'!A" & n & """))"
Next n

Где B1 - это ячейка с именем листа, на который я хочу сослаться.

Когда я пытаюсь включить ту же логику в ВПР, я получаю ошибку времени выполнения:

For n = 6 To 77
    Range("C" & n).Formula = "=VLOOKUP(A" & n & ",INDIRECT(""'"" & B1 & ""'!A1:H76""" & "),3,0))"
Next n

Я уверен, что это что-то с цитатами, но я просто не могу понять, пожалуйста, помогите!


person Meghan    schedule 17.05.2016    source источник
comment
Слишком много ) на конце удалите один.   -  person Scott Craner    schedule 17.05.2016


Ответы (1)


это то, что вы хотели, где имя листа находится в b1, а массив таблиц A1: H76 находится в ячейке b2

Dim n As Long

For n = 6 To 77

Range("c" & n).Formula = "=VLOOKUP(a" & n & ", INDIRECT(""'"" & b1 & ""'!"" & b2),3,0)"

Next n
person luckyguy73    schedule 18.05.2016