将两个表单链接的文本字符串转换为工作公式

时间:2014-06-03 15:53:44

标签: 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)

我创建了这个公式,以避免手动链接大量的电子表格。它捕获单元格的前两个单词,并将其放入将建立链接的文本字符串中(如果它是公式)。这样,我只需在单元格B9中输入公司名称,此公式将生成一个描述我想要的链接的文本字符串。这是公式输出:

+'X:\Deals\ONE-PAGERS\_One-pagers (vM)\[xxx vM.xlsx]Metrics'!$D$8

正如您所看到的,如果这是一个公式,它会生成一个链接,它会返回Cell D8工作表的xxx中的值。我已经尝试了评估解决方法(见下文)以及间接功能,似乎都没有工作。如果这没有意义,请提前告知我,并提前感谢您的帮助!

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

1 个答案:

答案 0 :(得分:0)

Evaluate和INDIRECT都需要打开源工作簿,但你可以使用ExecuteExcel4Macro:

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

我会避免使用太多这些功能!