使用VBA单元格引用创建对已关闭工作簿的外部引用

时间:2013-06-16 13:45:25

标签: vba reference excel-indirect

我遇到了问题。我有一系列单元格包含外部工作簿的路径,所有这些都包含相同的命名范围。 例如。在单元格B2的工作簿中,我有一个文本字符串读取C:\ test \ test.xlsm'。在该特定文件中,我将有一个名为' namedrange'的命名范围。现在我想使用在VBA中创建的函数来引用此命名范围。我想使用' INDEX'用于引用外部封闭式工作簿的功能。但是,INDEX不允许我引用单元格来创建该引用。我需要使用INDIRECT:但是,INDIRECT不允许我使用INDEX和已关闭的工作簿。那我该怎么做呢? 我试图创建名为' reference'它将链接到单元格B2,然后使用例如INDEX(参考文献(B2),1,1)指的是外部工作簿'命名范围第1行第1列。但这不起作用。有没有人有任何想法?同样,我想将函数MATCH与这些Reference一起使用。非常感谢!

Function Reference(stradd As String) As Range
    Reference = Workbooks(stradd).Range("namedrange")
End Function

1 个答案:

答案 0 :(得分:0)

您当然可以使用索引/匹配功能来引用已关闭的工作簿,例如:

使用index / match在名为“Test.xlsx”的已关闭工作簿的A列中查找“steve”,并返回相应行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)

显然,您可以将“Steve”的* lookup_value *更改为任何内容,包括单元格引用。