2012-05-30 4 views
1

Например:Excel: Как я могу получить формулу из вывода ячейки и оценить ее?

Я имею эту формулу в A1: 2 * х + 3 * х

и эту формулу в B1: = Подставим ($ A $ 1, "х", E1) так что мой выход в В1 2 * 1 + 3 * 1

Теперь, что я хотел бы, чтобы было, что операция оценивается так, что он показывает 5 вместо 2 * 1 + 3 * 1

Я не возражаю, если он находится в одной и той же ячейке или на другой, но как я могу это сделать?

Я пробовал с = VALUE (B1), но это дает мне ошибку, я попытался с = INDIRECT ("B1", 0), но это также дает мне ошибку. Я не знаком с этими функциями, поэтому я не уверен, что это то, что мне нужно. Какие-либо предложения?

Я хотел бы сделать это без использования макросов, если это возможно.

Спасибо!

ответ

2

Вы можете использовать небольшую UDF

Function Eval(exp As String) 

    Dim rv 
    rv = Application.Evaluate(exp) 
    Eval = IIf(IsError(rv), CVErr(xlValue), rv) 

End Function 

Затем на листе:

=Eval(SUBSTITUTE(B4,"x",5)) 
+0

я получаю «Основную ошибку во время выполнения объекта переменные не установлено» от этой линии: с.в. = Application.Evaluate (exp) –

+0

Где вы разместили код? Работает для меня в регулярном модуле ... –

+0

См. Мое редактирование - добавлено «As String» к параметру функции –

Смежные вопросы