powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как в excel вставить формулу массива?
5 сообщений из 5, страница 1 из 1
как в excel вставить формулу массива?
    #40056970
Anton_1234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При попытке вставить выдает ошибку:
Нельзя установить свойство FormulaArray класса Range

если попробовать вставить, т.е. сделать что-то типа:
Код: pascal
1.
Cells[i, j].FormulaArray:='=MAX(IF(R[-1]C[-1]:R[8]C[-1]=R[-1]C,ROW(R[-1]C[-1]:R[8]C[-1]);0))';

то во время исполнения программы вылетает ошибка:
Нельзя установить свойство FormulaArray класса Range

пробовал по всякому, причем если вставлять просто формулу, т.е. проделать что-то вроде
Код: pascal
1.
Cells[i, j].Formula:='=MAX(IF(R[-1]C[-1]:R[8]C[-1]=R[-1]C,ROW(R[-1]C[-1]:R[8]C[-1]);0))';

то получается вставить (формула естественно не работает, но вставить получается)
Если я после такой вставки зайду в ячейку с этой неработающей формулой и нажму CTRL+SHIFT+ENTER, то формула становится формулой массива и нормально работает
...
Рейтинг: 0 / 0
как в excel вставить формулу массива?
    #40056988
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton_1234,

Запишите макрос и посмотрите что происходит
...
Рейтинг: 0 / 0
как в excel вставить формулу массива?
    #40056992
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton_1234пробовал по всякому

А в гугле прочитать первую же ссылку пробовал?..
https://stackoverflow.com/questions/30105324/error-unable-to-set-the-formulaarray-property-of-the-range-class
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как в excel вставить формулу массива?
    #40057071
istrebitel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
как в excel вставить формулу массива?
    #40057355
Anton_1234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cobalt747
Anton_1234,
Запишите макрос и посмотрите что происходит
да, посмотрел, там английские названия функций, что я сначала и хотел сделать через дельфи


Dimitry Sibiryakov

Anton_1234пробовал по всякому

А в гугле прочитать первую же ссылку пробовал?..
https://stackoverflow.com/questions/30105324/error-unable-to-set-the-formulaarray-property-of-the-range-class
там немножко не то. пишут, что формула должна быть короче 255 символов, но у меня короче


istrebitel
а вот это то самое что надо, сделал через try ... except ... end;
Код: pascal
1.
2.
3.
4.
5.
try // сначала английский вариант
  Cells[i, j].FormulaArray:='=MAX(IF(R[-1]C[-1]:R[8]C[-1]=R[-1]C,ROW(R[-1]C[-1]:R[8]C[-1]);0))';
except // если не прокатило -- русский
  Cells[i, j].FormulaArray:='=МАКС(ЕСЛИ(R[-2]C[-1]:R[7]C[-1]=R[-2]C;СТРОКА(R[-2]C[-1]:R[7]C[-1]);0))';
end;

ошибок пока не было.
интересно, что просто формула (не формула массива) в английском написании вставляется и нормально работает

Спасибо всем, я знал, что я на форуме друзей
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как в excel вставить формулу массива?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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