Привет, я создал быструю функцию, которая оценивает строку
Function Evalue(ByVal str As String)
Application.Volatile
Evalue = Evaluate([str])
End Function
У меня есть массив со всеми формулами, которые я использую как строку. В зависимости от случая я использую ИНДЕКС/ПОИСКПОЗ, чтобы выбрать хорошую формулу, а затем Evalue, чтобы оценить ее.
Если строковая формула находится в 1 блоке, например SUM(A1:A20), она работает отлично. Но если она находится в нескольких блоках, например
SUM(A1:A20)-SUM(B1:B20
) он возвращает ошибку #NAME
, если я помещаю строку в массив между ' '
или " "
, он возвращает ошибку #VALUE
.
(SUM(A1:A20)-SUM(B1:B20))
? - person   schedule 02.12.2013#NAME
ошибка... - person user2118020   schedule 02.12.2013[]
сstr
при вызове Evaluate. Проверка сейчас... - person   schedule 02.12.2013#NAME
Ошибка... очень плохо для меня - person user2118020   schedule 02.12.2013Evaluate("=SUM(Sheet1!A1:A20)-SUM(Sheet1!B1:B20)")
- person John Alexiou   schedule 02.12.2013A1
и т. д. (с 1 исправлением) - person   schedule 02.12.2013