Я пытаюсь оценить строку как формулу.Формула содержит ссылку на другую книгу в строке.
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