dynamic引用一个单元格

我想为Excel中的单元格中的驱动器,文件path,Excel电子表格名称和工作表名称设置名称,然后在引用外部单元格时将它们连接在一起。 这将允许我创builddynamic参考工作表的macros,因为电子表格在哪里并不重要。

到目前为止,我有以下几点:

Drive = C
Location = Users \ ashleys \ Desktop \ New Quote Production \ Quote Location 3 \ Ash
Name = Book3
Sheet = Sheet1

(请注意,上面的=号可以被认为是“指定的名称”)

我将它们连接在一起以下列方式创build另一个名称(称为Final):

Final =“'”&Drive&“:\”&Location&“[”&Name&“。xlsx]”&Sheet&“'!”

最终决议如下:

C:\Users\ashleys\Desktop\New Quote Production\Quote Location 3\Ash\[Book3.xlsx]Sheet1'! 

所以,就我而言,到目前为止这么好!

然而,我最后的障碍是尴尬的绊倒。 当我在单元格引用中使用最终定义的名称时,它不能以我期望的方式解决。 所以,如果我在Book1中,并且使用上面的代码来引用Book3中的单元格A3(例如包含单词“Success!”),我希望在Book1中的单元格中键入以下代码将parsing为“成功!“:=完整&A3

A3将在Book1中parsing为A3。

您需要使用INDIRECT才能正常工作,但其他工作簿必须打开。

http://www.cpearson.com/excel/indirect.htm

由于工作簿必须公开才能工作,因此不需要将文件位置添加到string中。 在Workbook打开事件中使用的某些VBA代码中,可能会自动打开其他工作簿,或者查看Excel工作区来打开其他文件。

http://www.ozgrid.com/Excel/save-as-workspace.htm

ie =INDIRECT("'[Book3.xlsx]Sheet1'!$A$1")=INDIRECT(Final)如果Final是一个命名值。