powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Не получается записать формулу с функциями на русском
6 сообщений из 6, страница 1 из 1
Не получается записать формулу с функциями на русском
    #34478678
анатолик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу в Delphi:
Код: plaintext
1.
Sheet.Range[Sheet.Cells[i, j], Sheet.Cells[i, j]].Formula := '=ЕСЛИ(F9< 10 ;ОКРУГЛ(F9+(F9/ 100 *$E$ 3 ); 1 );ОКРУГЛВНИЗ((F9+(F9/ 100 *$E$ 3 ))* 2 ; 0 )/ 2 )';
Excel 2003 на русском языке
Выдает EOleException по адресу. Простые формулы (=F8*E8) записываются без проблем.
Формула вполне адекватная (в режиме ручного ввода отрабатывает как надо). Демается, что дело в формулах на русском. Попытался "ЕСЛИ" заменить на "IF", Excel не воспринимает такого варианта...
Подскажите, где может быть фикус..
...
Рейтинг: 0 / 0
Не получается записать формулу с функциями на русском
    #34478709
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
свойство Formula требует функций на английском и разделители из американской локали :

"=IF(F9<10,ROUND(F9+(F9/100*$E$3),1),ROUNDDOWN((F9+(F9/100*$E$3))*2,0)/2)"

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Не получается записать формулу с функциями на русском
    #34478721
lena_####
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
анатолик

KL (XL) Вам уже ответил, я же рискну предложить простейший вариант получения для любой формулы в русской локали ее аналога в американской локали.
В Excel’е включаете макрорекодер и вводите в ячейку Вашу формулу
=ЕСЛИ(F9<10;ОКРУГЛ(F9+(F9/100*$E$3);1);ОКРУГЛВНИЗ((F9+(F9/100*$E$3))*2;0)/2)
Выключаете макрорекодер и смотрите, что он Вам приготовил (что-то типа этого):
Код: plaintext
1.
2.
3.
Sub Макрос1()
    ActiveCell.FormulaR1C1 = _
        "=IF(R[-1]C[-1]<10,ROUND(R[-1]C[-1]+(R[-1]C[-1]/100*R3C5),1),ROUNDDOWN((R[-1]C[-1]+(R[-1]C[-1]/100*R3C5))*2,0)/2)"
End Sub
Если Вас устраивает стиль ссылок R1C1, то просто подставляете строку:
=IF(R[-1]C[-1]<10,ROUND(R[-1]C[-1]+(R[-1]C[-1]/100*R3C5),1),ROUNDDOWN((R[-1]C[-1]+(R[-1]C[-1]/100*R3C5))*2,0)/2)
в свой код.
Если душа просит ссылки в стиле A1, то такая процедура
Код: plaintext
1.
2.
3.
4.
Sub Макрос2()
  ActiveCell.Formula = _
        "=IF(R[-1]C[-1]<10,ROUND(R[-1]C[-1]+(R[-1]C[-1]/100*R3C5),1),ROUNDDOWN((R[-1]C[-1]+(R[-1]C[-1]/100*R3C5))*2,0)/2)"
  Debug.Print ActiveCell.Formula
End Sub
выведет в отладчик строку:
=IF(F9<10,ROUND(F9+(F9/100*$E$3),1),ROUNDDOWN((F9+(F9/100*$E$3))*2,0)/2)
...
Рейтинг: 0 / 0
Не получается записать формулу с функциями на русском
    #34478732
анатолик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вводу функций на английском языке препятствует сам Excel, пишет, что формула не верна.
А вот макрорекодера я не нашел. Если не сложно, поясните, где включается эта опция.
Заранее благодарен.
...
Рейтинг: 0 / 0
Не получается записать формулу с функциями на русском
    #34478763
lena_####
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
анатолик

Чтобы включить макрорекодер: Сервис -> Макрос -> Начать запись
После этого выполняются те действия, для которых нужно получить результирующий макрос.
Чтобы посмотреть результат:
выключаем макрорекодер: Сервис -> Макрос -> Остановить запись
открываем редактор VBA: Сервис -> Макрос -> Редактор Visual Basic (или Alt+F11)
Чтобы показать окно отладки в редакторе VBA жмем Ctrl+g

Вводу функций на английском языке препятствует сам Excel, пишет, что формула не вернаВот здесь мне лично не все понятно. Такое впечатление, что Вы пытаетесь в русской локали вручную вводить в ячейку формулу, записанную для английской локали.

Мне кажется, что в Вашем случае достаточно подправить дельфийский код на:
Код: plaintext
 Sheet.Range[Sheet.Cells[i, j], Sheet.Cells[i, j]].Formula := '=IF(F9< 10 ,ROUND(F9+(F9/ 100 *$E$ 3 ), 1 ),ROUNDDOWN((F9+(F9/ 100 *$E$ 3 ))* 2 , 0 )/ 2 )';
...
Рейтинг: 0 / 0
Не получается записать формулу с функциями на русском
    #34478890
анатолик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос снят.
Благодарю
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Не получается записать формулу с функциями на русском
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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