在Excel中更改链接文件path

我想知道是否有可能在Excel中使用另一个单元格中的文本更改链接的文件path。 这里的诀窍是,源工作簿不是与其中包含链接的工作簿同时打开的,并且不在同一个文件夹中。

即:如果一旦单元格具有如下链接:

='C:\thanks\forthehelp\01\[eg.xlsx]worksheet'!A1 

我想根据单元格中的文本input来更改文件,即单元格A1有一些文本:“02”

 ='C:\thanks\forthehelp\&A1&\[eg.xlsx]worksheet'!A1 

要得到

 ='C:\thanks\forthehelp\02\[eg.xlsx]worksheet'!A1 

我知道上面的例子不起作用,但我认为这说明了我想在这里做什么。 任何帮助将非常感激。 我希望这是有道理的。

谢谢。

您可以使用INDIRECT函数来实现到目标工作簿的结构化string,但INDIRECT不能在closures的工作簿上工作。

VBA例程可以replace单元格中的公式。

 Range("A1").Formula = Replace(Range("A1").Formula, "\01\", "\02\") 

如果您select这种公式replace,您应该检查以确保外部工作簿存在于新的位置,类似于Dir函数 。 与xlCellTypeFormulas属性一起使用Range.SpecialCells方法将加速通过单元格,而不是循环遍历所有单元格,并确定Range.HasFormula属性是否为true。