Excel参考外部工作表

时间:2014-11-13 16:10:42

标签: excel vba excel-vba

一个excel问题为你的大师。我试过高低搜索并没有找到有效的解决方案。

我正在尝试创建一个将在外部工作表中查找值的公式。我正在使用SUMPRODUCT公式,它完美无缺。公式如下:

=SUMPRODUCT(--('File\Path\[file.xlsx]SheetName!$D$1:$D$1000=$B3), --('File\Path\[file.xlsx]SheetName'!$O$1:$O$1000=$A3), 'File\Path\[file.xlsx]SheetName'!$Q$1:$Q$1000)

然而,我遇到的问题是源文件每天都在更新。虽然工作簿名称保持不变,但工作表名称会更改。每次更新时,都会将随机字符串分配给源表名称。因此SheetName变为SheetName ase341

有没有办法让公式读取外部工作​​表编号而不是名称?无论工作表名称如何,我都希望更新公式。如果没有办法读取工作表位置有没有办法通过外部工作簿中的公式更改工作表名称?



用法示例

我有一个工作簿(分析),它从另一个工作簿(源)中提取数据。源每天都会使用新数据进行更新。源中的数据通过从Internet下载报告并保存旧源文件来更新。因此,文件名保持不变,但文件中的内容总是不同(包括工作表名称)。源中始终只有一个工作表具有相同的列数,始终位于相同的位置。

2 个答案:

答案 0 :(得分:0)

有一种非常简洁的方法可以引用外部工作簿中的单元格块,其中工作表名称或块地址可能会有所不同。说我们有:

=SUM('C:\Users\James\Desktop\[Book1.xlsx]Sheet1'!$B$2:$B$9)

但是,工作表名称可能会有所不同。首先将定义名称分配给 Book1 中的块(例如 XXX

然后我们可以使用:

=SUM('C:\Users\James\Desktop\Book1.xlsx'!XXX)

如果工作表名称更改无关紧要,已定义名称将随之更改!

答案 1 :(得分:0)

使用VBA可以最有效地解决您的问题,但如果您刚刚开始使用,这可能不是最佳途径。

您可以使用公式获取工作表名称或文件名:

http://www.ozgrid.com/VBA/return-sheet-name.htm