Я потратил часы на это и нашел связанные вопросы, но я не нашел ответ, который работает, поэтому я не верю, что это дубликат.
У меня есть строка в ячейке, которая представляет собой простую формулу переменной в нем. Эта переменная будет предопределена. Тогда мне нужно оценить строку. Я не могу получить значение ячейки для оценки. Сама строка вычисляется в непосредственном окне, но точно такая же строка значения ячейки не делает:
?myVar
1
?[M115].Value
"0.1*" & myVar & "*(0.2+0.3*" & myVar & "/.4)"
?Evaluate("0.1*" & myVar & "*(0.2+0.3*" & myVar & "/.4)")
0.095
?Evaluate([M115].Value)
Error 2029
Мое лучшее предположение в переменной не оценивается, так как я могу заменить myVar на 1, и это работает. Я перепробовал все способы тройного цитирования, и это тоже не работает. Как я могу выполнить эту, казалось бы, простую вещь? Я попытался обернуть в сабвуферы и функции, например, так:
Function ev(r As Range, ByVal myVar As Double) As Variant
Debug.Print myVar
Debug.Print r.value
ev = Evaluate(r.value)
End Function
?ev([M115], 1)
1
"0.1*" & myVar & "*(0.2+0.3*" & myVar & "/.4)"
Error 2029
myVar=1
?Evaluate("0.1*" & myVar & "*(0.2+0.3*" & myVar & "/.4)")
0.095
Что я пропускаю? Благодарю.