Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как в excel вставить формулу массива? / 5 сообщений из 5, страница 1 из 1
25.03.2021, 18:11
    #40056970
Anton_1234
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в excel вставить формулу массива?
При попытке вставить выдает ошибку:
Нельзя установить свойство 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
25.03.2021, 18:59
    #40056988
Cobalt747
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в excel вставить формулу массива?
Anton_1234,

Запишите макрос и посмотрите что происходит
...
Рейтинг: 0 / 0
25.03.2021, 19:03
    #40056992
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в excel вставить формулу массива?
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
26.03.2021, 03:45
    #40057071
istrebitel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в excel вставить формулу массива?
...
Рейтинг: 0 / 0
27.03.2021, 12:15
    #40057355
Anton_1234
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в excel вставить формулу массива?
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
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как в excel вставить формулу массива? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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