powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / помощь в Excel (вычислять результат текстовой формулы)
16 сообщений из 16, страница 1 из 1
помощь в Excel (вычислять результат текстовой формулы)
    #33871603
Zoya2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подскажите, с помощью какой функции Excel можно вычислять результат текстовой формулы, введенной в другую ячейку. например в А1 ввожу "1+5-14*48" и хочу чтобы в В1 вычислялся результат "-246" (без ввода "=1+5-14*48"
т.е моя задача, что бы в А1 был текс формулы, а в В1 - результат вычислений
...
Рейтинг: 0 / 0
помощь в Excel (вычислять результат текстовой формулы)
    #33872679
Трурль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может быть, есть что-нибудь встроенное (Вы ведь смотрели в справочном руководстве?). А так - надо все ручками.

Написать собственную VBA-функцию и - вперед.
...
Рейтинг: 0 / 0
помощь в Excel (вычислять результат текстовой формулы)
    #33872725
Valll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда был макроязык в Экселе, была функция "ВЫЧИСЛИТЬ" - она решала именно эти задачи. Найди ее аналог в VBA или сделай ее сам. Достаточно простая задача. А вообще, я думаю, применительно к конкретной задачи, можно обойтись изменив структуру таблицы.
...
Рейтинг: 0 / 0
помощь в Excel (вычислять результат текстовой формулы)
    #33872749
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Правильно говорят про формулу ВЫЧИСЛИТЬ. Как ее использовать, я писал здесь .

Либо написать аналог функции на VBA.

Код: plaintext
1.
2.
3.
Public Function fnEvaluate( _
  ByRef rng As Range)
    fnEvaluate = Application.Evaluate(rng.Value)
End Function

A1 = "1+5-14*48"
B1 = =fnEvaluate(A1)
...
Рейтинг: 0 / 0
помощь в Excel (вычислять результат текстовой формулы)
    #33878044
Zoya2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как написать аналог функции на VBA? через макросы?
...
Рейтинг: 0 / 0
помощь в Excel (вычислять результат текстовой формулы)
    #33878047
Zoya2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и как можно преобазовать формулу в ячейке А1 в текст формулы в ячейку В1
...
Рейтинг: 0 / 0
помощь в Excel (вычислять результат текстовой формулы)
    #33878086
Valll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, так тебе ж написал Ashton!
...
Рейтинг: 0 / 0
помощь в Excel (вычислять результат текстовой формулы)
    #33878339
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Zoya2006а как написать аналог функции на VBA? через макросы?
См. мой пост выше.

Zoya2006и как можно преобазовать формулу в ячейке А1 в текст формулы в ячейку В1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Public Function fnFormulaToText( _
  rng As Range) As String
    If rng.HasFormula Then
        fnFormulaToText = rng.Formula
    Else
        fnFormulaToText = ""
    End If
End Function
...
Рейтинг: 0 / 0
помощь в Excel (вычислять результат текстовой формулы)
    #33878393
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  Application.EnableEvents = False
  Range("B1").FormulaLocal = "=" & Range("A1").Value
  If Err.Number <>  0  Or IsError(Range("B1")) Then _
    Range("B1") = "Опаньки, плохи дела с формулой в A1"
  Application.EnableEvents = True
End Sub
...
Рейтинг: 0 / 0
помощь в Excel (вычислять результат текстовой формулы)
    #33878400
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если в B1 нужно значение формулы, то так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  Application.EnableEvents = False
  Range("B1").FormulaLocal = "=" & Range("A1").Value
  Range("B1") = Evaluate(Range("B1").Formula)
  If Err.Number <>  0  Or IsError(Range("B1")) Then _
    Range("B1") = "Опаньки, плохи дела с формулой в A1"
  Application.EnableEvents = True
End Sub
...
Рейтинг: 0 / 0
помощь в Excel (вычислять результат текстовой формулы)
    #33880834
Zoya2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВЫ ИЗВИНИТЕ МЕНЯ, Я ПЛОХО В ЭТОМ РАЗБИРАЮСЬ!
делала так:
Создание макроса с использованием Microsoft Visual Basic
1. В меню Сервис Microsoft Excel выберите команду Макрос, а затем — Редактор Visual Basic.
2. В меню Insert выберите команду Module.
3. Введите или скопируйте программу в окно программы модуля.
4. Чтобы запустить данный макрос из окна модуля, нажмите кнопку F5.
5. Когда макрос будет создан, выберите команду Close and Return to Microsoft Excel в меню File.
получилось в Visual Basic:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Application.EnableEvents = False
Range("B1").FormulaLocal = "=" & Range("A1").Value
Range("B1") = Evaluate(Range("B1").Formula)
If Err.Number <> 0 Or IsError(Range("B1")) Then _
Range("B1") = "Опаньки, плохи дела с формулой в A1"
Application.EnableEvents = True
End Sub
Sub мой()

End Sub

НЕ РАБОТАЕТ (ЧТО НЕ ТАК?)
...
Рейтинг: 0 / 0
помощь в Excel (вычислять результат текстовой формулы)
    #33883501
Zoya2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БОЛЬШОЕ СПАСИБО, У МЕНЯ ПОЛУЧИЛОСЬ!!!
...
Рейтинг: 0 / 0
помощь в Excel (вычислять результат текстовой формулы)
    #33883594
Zoya2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я написала аналог функции на VBA.


Public Function fnEvaluate( _
ByRef rng As Range)
fnEvaluate = Application.Evaluate(rng.Value)
End Function

Работает только с простыми вычислениями (10-8+2),а (0,33*0,95) не вычисляет... Почему? и что делать?
...
Рейтинг: 0 / 0
помощь в Excel (вычислять результат текстовой формулы)
    #33883755
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zoya2006Работает только с простыми вычислениями (10-8+2),а (0,33*0,95) не вычисляет... Почему? и что делать?Замени запятые на точки.
...
Рейтинг: 0 / 0
помощь в Excel (вычислять результат текстовой формулы)
    #33884051
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
Public Function fnEvaluate( _
  ByRef rng As Range)
    fnEvaluate = Application.Evaluate(Replace(rng.Value, ",", "."))
End Function
...
Рейтинг: 0 / 0
помощь в Excel (вычислять результат текстовой формулы)
    #33886478
Zoya2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, все получилось! Удачи Вам во всем!
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / помощь в Excel (вычислять результат текстовой формулы)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]