我正在尝试在Excel 2010中创建动态链接。下面我创建了一个函数,它为我提供了要引用的父文件夹工作簿。当我尝试添加'到LEFT关键字时,excel不接受它。我正在尝试做的是在父文件夹中引用工作簿,并希望确保移动父文件夹时所有文件保持链接。
我的问题是如何从下面的LEFT函数创建一个链接。感谢
=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")
答案 0 :(得分:1)
这应该有效,假设你的左公式是正确的(未经测试):
=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")
答案 1 :(得分:0)
要创建指向文件的链接,您需要输入完整路径并直接引用公式(INDIRECT不起作用)。将链接指向活动单元格中的父文件夹的一种方法是使用此VBA命令:
activecell = "='" & activeworkbook.path & "\..\[Book1.xlsx]Sheet1'!$A$1"
路径相对于工作簿存储,如对上一个链接问题的响应中所述。也可以使用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,(请注意,这些方法效率较低,链接不会创建,因此在移动文件夹时不会更新。)< / p>