String 将链接两张图纸的文本字符串转换为工作公式

String 将链接两张图纸的文本字符串转换为工作公式,string,excel,vba,eval,excel-indirect,String,Excel,Vba,Eval,Excel Indirect,我试图将文本字符串转换为公式,但我的文本字符串有点不寻常,因为它描述了两个工作表之间的链接。以下是开始公式: +TEXT("+'X:\Deals\ONE-PAGERS\_One-pagers (vM)\["&TRIM(LEFT(SUBSTITUTE($B9," ",REPT(" ",30)),64))&" vM.xlsx]Metrics'!$D$8",1) 我创建这个公式是为了避免手动链接大量电子表格。它捕获单元格的前两个单词,并将其放入一个文本字符串中,该字符串将建立链接(如

我试图将文本字符串转换为公式,但我的文本字符串有点不寻常,因为它描述了两个工作表之间的链接。以下是开始公式:

+TEXT("+'X:\Deals\ONE-PAGERS\_One-pagers (vM)\["&TRIM(LEFT(SUBSTITUTE($B9," ",REPT(" ",30)),64))&" vM.xlsx]Metrics'!$D$8",1)
我创建这个公式是为了避免手动链接大量电子表格。它捕获单元格的前两个单词,并将其放入一个文本字符串中,该字符串将建立链接(如果是公式)。这样,我只需在单元格B9中输入一个公司名称,这个公式将生成一个描述我想要的链接的文本字符串。以下是公式输出:

+'X:\Deals\ONE-PAGERS\_One-pagers (vM)\[xxx vM.xlsx]Metrics'!$D$8
如您所见,如果这是一个公式,它将生成一个链接,它将返回
xxx
工作表的
单元格D8
中的值。我尝试过评估工作区(见下文)和间接功能,但两者似乎都不起作用。如果这不合理,请告诉我,并提前感谢您的帮助

Function EvalCell(RefCell As String)
Application.Volatile
EvalCell = Evaluate(RefCell)
End Function

Evaluate和INDIRECT都要求源工作簿处于打开状态,但您可以使用ExecuteExcel4Macro:

Function EvalCell(RefCell As String)
Application.Volatile True
application.ExecuteExcel4Macro(application.convertformula(mid$(RefCell, 2), xlA1, xlr1c1))
End Function

不过,我会避免使用太多这些函数

非常感谢!我会在工作表中使用这个公式1000次,这危险吗?我总是可以粘贴公式的值输出,并用F2刷新单元格以创建链接,因此,如果这很危险,我不是运气不好,我只是想知道是否有更好的方法!这并不危险,但可能会对性能造成影响。试试看如果速度太慢,可以自动转换为计算公式。