从LEFT函数创build链接

我试图在Excel 2010中创build一个dynamic链接。下面我创build了一个函数,它提供了我要引用的父文件夹工作簿。 当我尝试添加到左键关键字excel不接受它。 我想要做的是参考父文件夹中的工作簿,并要确保何时移动父文件夹所有文件保持链接。

我的问题是如何从下面的LEFT函数创build一个链接。 谢谢

=LEFT(CELL("filename"),LARGE((MID(CELL("filename"),ROW(1:255),1)="\")*IFERROR(SEARCH("\",CELL("filename"),ROW(1:255)),0),2)) & CONCATENATE("[Book1.xlsx]Sheet1'!$A$1") 

这应该工作,假设你的左边的公式是正确的(未testing):

 =INDIRECT("'["& LEFT(CELL("filename"),LARGE((MID(CELL("filename"),ROW(1:255),1)="\")*IFERROR(SEARCH(" \",CELL("filename"),ROW(1:255)),0),2))&"Book1.xlsx]Sheet1'!$A$1") 

要创build文件链接,您需要input完整path并直接引用到公式中(INDIRECT将不起作用)。 在活动单元格中链接到父文件夹的一种方法是使用此VBA命令:

 activecell = "='" & activeworkbook.path & "\..\[Book1.xlsx]Sheet1'!$A$1" 

按照上一个链接问题的回复中所述,path相对于工作簿存储。 也可以使用udf从封闭的工作簿检索值,例如:

 Function Eval(Text As String) Set xl = CreateObject("excel.application") eval = xl.ExecuteExcel4Macro(Application.ConvertFormula(Text, xlA1, xlR1C1, True)) Set xl = Nothing End Function 

或者通过下载Laurent Longre的Morefunc.xll免费加载项,该函数具有一个函数INDIRECT.EXT(但要注意,这些方法效率较低,并且不会创build链接,因此在移动文件夹时不会更新)。