0

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

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

1 回答 1

0

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

使用索引/匹配在名为“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* 更改为任何内容,包括单元格引用。

于 2013-06-16T13:53:32.537 回答