Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 动态引用单元格_Excel_Parameters_Excel Formula_Filepath - Fatal编程技术网

Excel 动态引用单元格

Excel 动态引用单元格,excel,parameters,excel-formula,filepath,Excel,Parameters,Excel Formula,Filepath,我想在Excel的单元格中设置驱动器名称、文件路径、Excel电子表格名称和工作表名称,然后在引用外部单元格时将它们连接在一起。这将允许我创建动态引用工作表的宏,因为不管电子表格在哪里 到目前为止,我有以下几点: C:\Users\ashleys\Desktop\New Quote Production\Quote Location 3\Ash\[Book3.xlsx]Sheet1'! 驱动器=C Location=Users\ashleys\Desktop\New Quote Product

我想在Excel的单元格中设置驱动器名称、文件路径、Excel电子表格名称和工作表名称,然后在引用外部单元格时将它们连接在一起。这将允许我创建动态引用工作表的宏,因为不管电子表格在哪里

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

C:\Users\ashleys\Desktop\New Quote Production\Quote Location 3\Ash\[Book3.xlsx]Sheet1'!
驱动器=C
Location=Users\ashleys\Desktop\New Quote Production\Quote Location 3\Ash
Name=Book3
活页=活页1

(请注意,上面的=符号可以理解为“分配名称为”)

我将它们连接在一起,以以下方式创建另一个名称(称为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中的单元格中键入以下内容将解析为“Success!”: =全套和A3


相反,A3在Book1中解析为A3。

您需要使用“间接”才能工作,但其他工作簿必须打开

由于工作簿必须打开才能工作,因此无需将文件位置添加到字符串中。在工作簿打开事件中使用的某些VBA代码中,自动打开其他工作簿或查看Excel工作区以打开其他文件可能很有用


i、 e.
=间接(“[Book3.xlsx]Sheet1'!$A$1”)
=间接(Final)
如果Final是一个命名值。

如果您试图对其进行编码,则需要显示您的代码(工作与否)。嗨,吉普德,我想我是通过显示“'”驱动器和“:\”位置和“[”名称和“.xlsx]”表和“!”。恐怕这背后没有VBA。只需简单的Excel连接和单元格引用。我知道有一个VBA解决方案,但我现在没有尝试。好吧,那么
VBA
excel VBA
标记有误导性。不要往墙上扔泥巴,看是什么粘在墙上;它只是混淆了眼前的问题。您可能需要,但这在封闭的外部工作簿上不起作用。要使其起作用,您需要在间接函数中包装字符串单元格位置,但是另一个工作簿必须打开。仅供将来参考。如果你想让人们收到你写了新评论的通知,你需要在他们的名字前面添加一个@符号。否则,他们看到你的新评论的唯一方式就是,如果他们碰巧回到问题上来。我告诉你这件事并不是故意让你知道,这样你就不会认为人们忽视了你。