powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / генерация XLS - текст формулы
9 сообщений из 9, страница 1 из 1
генерация XLS - текст формулы
    #33071334
Sequel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И еще вопрос:
в Fox программе генерю Excel-файл
пытаюсь в ячейку вписать формулу

.ActiveCell.FormulaR1C1 = '=ЕСЛИ(RC[-2]>0;RC[-2]+RC[-1];"")'
получаю ошибку
OLE error code 0x800a03ec: Uncknown COM status code
аналогично и если текст формулы
'=IF(RC[-2]>0;RC[-2]+RC[-1];"")'

хотя формула
.ActiveCell.FormulaR1C1 = '=RC[-2]+RC[-1]' успешно работает

что не так ???
...
Рейтинг: 0 / 0
генерация XLS - текст формулы
    #33071348
не проф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не проф. и никогда на Фоксе не писал. но кажись причина в кавычках.
...
Рейтинг: 0 / 0
генерация XLS - текст формулы
    #33071385
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том, что в коде VB надо писать не русское, а английское имя функции. В данном случае

Код: plaintext
.ActiveCell.FormulaR1C1 = '=IF(RC[-2]>0;RC[-2]+RC[-1];"")'

Вообще-то, пользуйтесь макрорекодером. Он пишет все имена функций только и исключительно в их английской транскрипции.
...
Рейтинг: 0 / 0
генерация XLS - текст формулы
    #33071422
Sequel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
было бы понятно если бы я пробовал ТОЛЬКО
'=ЕСЛИ(RC[-2]>0;RC[-2]+RC[-1];"")'

но _аналогичную_ ошибку дает и в случае

'=IF(RC[-2]>0;RC[-2]+RC[-1];"")'

в этом то и проблема
...
Рейтинг: 0 / 0
генерация XLS - текст формулы
    #33071447
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня когда-то была похожая проблема. Пришлось поплясать с бубном вокруг использования символов ";" - кажись пришлось поменять на "," и возможно с видом кавычек. Правда последнее кажись тут не причем.
...
Рейтинг: 0 / 0
генерация XLS - текст формулы
    #33071448
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, еще, далеко не всегда написание относительных ссылок вида RC[-2] синтаксически корректно.

Посмотрите вложенный файл. Там описано как переводить макросы Excel в синтаксис FoxPro. Обратите внимание на разные варианты адресации к ячейкам.

Возможные проблемы:

-) Надо использовать не функцию IF(), а функцию IIF() (2 буквы I)
-) Надо писать не точку с запятой, а запятую, для разделения параметров
-) Недопустимый способ адресации к ячейкам
-) Нельзя использовать данный вид кавычек или нужны сдвоенные кавычки
...
Рейтинг: 0 / 0
генерация XLS - текст формулы
    #33071457
Sequel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Буду смотреть
о результатах сообщу позднее
...
Рейтинг: 0 / 0
генерация XLS - текст формулы
    #33071520
Sequel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЗАРАБОТАЛО !!!
'=IF(RC[-2]>0,RC[-2]+RC[-1],"")'

т.е.
1 - название функции должно быть из макрорекордера (англоязычое)
2 - параметры функции должны разделяться _ЗАПЯТОЙ_

Всем большое спасибо !!!

P.S. мда, много в мире есть загадок
...
Рейтинг: 0 / 0
генерация XLS - текст формулы
    #33071753
piva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть еще FormulaR1C1Local там можно писать формулы на русском если ексель русский
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / генерация XLS - текст формулы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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