Страницы: 1
RSS
Обойти ограничение на длину формулы, Нельзя установить свойство formulaarray класса range
 
Уважаемые профи форума, подскажите, можно ли каким либо способом обойти ограничения Excel. Ситуация такая в ячейках имеются правильно работающие формулы массива длина которых варьируется от ~500 до ~ 750 символов. Повторюсь, формулы считают правильно. Для возможности восстановления формул при необходимости, я записал их макрорекодером. Но при попытке запустить макрос выпадает ошибка Нельзя установить свойство formulaarray класса range. Если я правильно понимаю совет с темы Запись формулы массива в макросе, то у меня такая же ситуация как и у автора темы, а именно превышение длины формулы. Сократить формулу, причем более чем в 2 раза нереально. Вопрос таков: можно ли каким либо образом обойти вышеупомянутое ограничение формулы или другим способом иметь возможность восстановить формулу в ячейках длина которой превышает 255 знаков? Заранее спасибо всем откликнувшимся.
 
Цитата
Алексей написал: Сократить формулу, причем более чем в 2 раза нереально
А вдруг? Выложите формулу, желательно в книге.
Цитата
Алексей написал: другим способом иметь возможность восстановить формулу в ячейках
Храните формулы в ячейках скрытого листа, копируйте ячейки на рабочий лист.
 
Формулы сократить действительно не реально, они содержат имена, которые в свою очередь являются формулам, так что это не вариант. А что касается хранения формулы на скрытом листе, то говоря про восстановление формул я имел ввиду следующее: ранее в файле имелось 2 листа, на 1 работают формулы и пользователь никак не может откорректировать значения (для чего эта корректировка ему может потребоваться - не моя проблема ;)), а на втором листе с аналогичной шапкой данные можно вставлять из листбокса как угодно. А сейчас я решил попробовать повесить вышеизложенную ситуацию на кнопку, убрав вторую страницу, т.е. оставить страницу с формулами, в случае необходимости пользователь жмет кнопку, формулы убираются, данные можно вставлять как угодно. Это разумеется сделать легко, но ведь формулы придется восстанавливать (по активации листа или по кнопке, неважно). А вот с этим восстановлением и вылезла ситуация с ограничением длины формулы массива в VBA. Если никто не предложит варианта решения ситуации, я просто наверно либо буду скрывать строки с формулами и открывать строки для свободного ввода, либо просто не буду убирать 2 страницу.
Изменено: Алексей - 22.11.2015 16:35:26
 
Может вовсе отказаться от формул и перейти на макросы? Тем более что Вы их и так уже используете
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja написал: отказаться от формул и перейти на макросы
Я думал об этом, но тут получается такая закавыка. Предположим я рассчитаю макросом данные, вставлю их в ячейки, но ведь данные можно будет корректировать как угодно, а вдруг пользователь по неосторожности сделает это или забудет об этом и т.д., а так в вышеизложенном моем варианте возможность корректировки включалась бы осознано и имелась бы возможность ее отмены. Если мой вопрос не имеет решения - ничего страшного, просто не будет нового варианта и все
 
Цитата
Алексей написал: в вышеизложенном моем варианте
все вышеизложенное вполне реализуемо макросами (например защита ячеек, ее отключение и прочие плюшки). Но дело, собственно, хозяйское
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja написал: вполне реализуемо макросами (например защита ячеек, ее отключение и прочие плюшки)
в данном случае овчинка не стоит выделки. Спасибо за отклики
 
Я бы посоветовал эту формулу сделать именованной - тогда запись её макросом пройдет без ошибок. У Вас же все равно там уже толпа имен.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Уважаемый The_Prist, я так понимаю для того чтобы сделать именованную формулу следует через диспетчер имен создать новое имя, а в диапазон вставить имеющуюся формулу, правильно? А вот как запустить эту формулу из VBA, например для диапазона  [A10:A100], подскажите пожалуйста.
 
Ура, вроде бы сам понял. Предположим я назвал свою длинную формулу PrihodRashodPostav. Тогда код будет выглядеть:
Код
[A10:A100].FormulaArray = "=PrihodRashodPostav"
 
У меня аналогичная ситуация. Короткая формула (примерно 20 слов) работает, а длинная (100 и более слов) - не работает. В какой вкладке можно увеличить лимит слов в формуле?
Изменено: Excaz - 23.07.2023 07:24:38
 
Цитата
написал:
У меня аналогичная ситуация.
Какая версия Excel у вас?
Страницы: 1
Читают тему
Наверх