使用外部链接评估字符串公式

时间:2019-02-19 18:00:53

标签: excel vba string external

我正在尝试将字符串作为公式求值。该公式在字符串中包含对另一个工作簿的引用。

MyString="MATCH(""Keyword"",'FileFolder\[MyWorkbook.xlsx]Sheet1'!A1:A100,0)"

如果将此字符串作为公式输入到工作簿中(前面带有=),则它可以正常工作。字符串/路径是使用标准Excel公式在工作簿中生成的其他信息。通过将=符号替换/添加到公式文本中,可以使公式起作用。但是,我希望能够调用直接执行此操作的函数。我已经使用VBA的评估属性在单独的函数中执行此操作,但收到错误。

当我调用函数以评估字符串时,实际上可以在编辑栏中看到正确的值。但是,一旦接受公式,实际值将返回参考错误。在少数情况下,使用数组公式(Ctrl + Shift + Enter)可解决此问题,但总的来说这无济于事。关于如何创建将评估字符串中的匹配公式的公式的任何想法。

Function WSEval(FormulaString)
'allows string given in workbook to be evaluated
WSEval = Evaluate(FormulaString)
End Function


Function GetExternalDataFromString()

'WorkbookPath As String, RangeString As String)
'Testing Using Fixed Arguments for Now
WorkbookPath = "'\\FileFolder\[FileName.xlsx]"
RangeString = "Sheet1'!A1:A100"

FullString = WorkbookPath & RangeString

AllString = "=MATCH(""Total Costs"",'\\FileFolder\[FileName.xlsx]Sheet1'!A1:A100,0)"

'Note: Function works in formula bar but still returns reference error.

GetExternalDataFromString = Application.Evaluate(AllString)

End Function

0 个答案:

没有答案