Использование ссылки на ячейку VBA для создания внешней ссылки на закрытые книги
Я застрял с проблемой. У меня есть ряд ячеек, которые содержат пути к внешним рабочим книгам, все из которых содержат одноименный диапазон. Например, в рабочей тетради в ячейке B2 у меня есть текстовая строка "C:\test\test.xlsm". В этом конкретном файле у меня будет именованный диапазон с именем 'namedrange'. Теперь я хотел бы сослаться на этот namedrange, используя функцию, которая будет создана в VBA. Я хочу использовать функцию "ИНДЕКС" для обращения к внешним закрытым книгам. Однако INDEX не позволяет мне ссылаться на ячейки для создания этой ссылки. Мне нужно будет использовать INDIRECT: однако, INDIRECT не позволит мне использовать INDEX с закрытыми книгами. Так как бы я подошел к этому? Я попытался создать функцию, называемую "ссылка", которая будет ссылаться на ячейку B2, а затем использовать, например, INDEX(ссылка (B2),1,1), чтобы ссылаться на внешнюю рабочую книгу "именованный диапазон строки 1, столбец 1. Но это не работает. У кого-нибудь есть идеи? Точно так же я хотел бы использовать функцию MATCH с этими ссылками. Очень признателен!
Function Reference(stradd As String) As Range
Reference = Workbooks(stradd).Range("namedrange")
End Function
1 ответ
Вы, безусловно, можете использовать функции Index/Match для ссылки на закрытые книги, например:
Используйте index/match, чтобы найти "steve" в столбце A закрытой книги с именем "Test.xlsx" и вернуть значение в соответствующей строке, столбец B:
=INDEX('C:\Users\david_zemens\Desktop\[test.xlsx]Sheet1'!$A$1:$B$1,MATCH("steve",'C:\Users\david_zemens\Desktop\[test.xlsx]Sheet1'!$A:$A,FALSE),2)
Очевидно, что вы можете изменить *lookup_value* для Steve на что угодно, включая ссылку на ячейку.