Я хочу иметь две ячейки в Excel:
В первом из них (fx A1) я хочу иметь уравнение вида 2 + 2
Во втором (fx A2) я хочу иметь решение = 4.
Как мне это сделать?
решение1
Сначала введите следующую UDF в стандартный модуль:
Public Function eval(strng As String) As Variant
eval = Evaluate(strng)
End Function
затем в ячейку А2 введите:
=оценка(A1)
Пользовательские функции (UDF) очень просты в установке и использовании:
- ALT-F11 открывает окно VBE
- ALT-I ALT-M открывает новый модуль
- вставьте текст и закройте окно VBE
Если вы сохраните книгу, UDF будет сохранен вместе с ней. Если вы используете версию Excel позже 2003, вы должны сохранить файл как .xlsm, а не .xlsx
Чтобы удалить UDF:
- откройте окно VBE, как указано выше
- очистить код
- закрыть окно VBE
Чтобы использовать UDF из Excel:
=мояфункция(A1)
Чтобы узнать больше о макросах в целом, см.:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
и
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
и
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
для получения подробной информации о UDF
Для работы макросы должны быть включены.!
решение2
Возможно, вы не сможете сделать именно то, что хотите, используя функцию рабочего листа.ответил здесьи это было задумано.
Вы можете добиться этого с помощью VBa (и в вашем посте не указано, используете ли вы VBa или нет, поэтому я предполагаю, что нет) или вы можете could
поискать старый XLM GET.FORMULA(), но VBa лучше (и я ничего не знаю о XLM)
Вы можете сделать что-то вроде
=FORMULATEXT(formulaCell)
FORMULATEXT requires the morefunc.xll add-in.
Однако в качестве обходного пути и на основе точного примера в вашем вопросе вы можете сделать следующее (что работает):
=SUM(LEFT(A1,1),RIGHT(A1,1))
Это будет работать только в том случае, если формула имеет вид N+N (где N — 1 цифра), но в зависимости от того, сколько у вас строк данных, это может вам подойти!