Столкнулся тут с одной проблемой - никак не мог отловить ошибку в установке Validation на ячейку через VBA. В двух случаях добавлял валидацию в одну и ту же ячейку через Join(Array, "," ;) . В одном случае срабатывает, в другом - нет, хоть тресни. В Validation нужно было занести около 1000 строк в обоих случаях (не спрашивайте, зачем :) )
Вычитал где-то, что в 2007 или 2003 (не помню) ограничение на количество строк в выпадающем списке было 32767 - но у меня и близко столько не было. Подумал, что у меня в строках встречаются запятые, наверное, они мешают и получается очень много строк. Взял каждый элемент в кавычки, опять Join - и не работает. Затем вычитал, что в какой-то из прежних версий длина строки Formula1 имеет ограничение 255 символов. Но это значение превышалось без проблем. Тут родилась идея проверить, есть ли такое ограничение и какое оно.
В итоге: Для Formula1, сформированной, например, посредством Join(Array, "," ;) , ограничение длины итоговой строки составляет 16383 символа Если Formula1 задается через, например, "=A1:Axxx", максимальное значение xxx - 65533
Совсем недавно столкнулся с этой проблемой - создавал программно выпадающий список при помощи Join(Array, ",") На небольших количествах всё работало, а при больших, при открытии файла ругань и удаление выпадающих списков (всех). Сам не смог разобраться, помог ZVI - ограничение на длину формулы = 255 символов. Пришлось идти обходным путём: сначала на листе заполнять именованный диапазон, а затем уже его в выпадающий.
Длина именно формулы, т.е. если условие представляет собой рассчитываемую формулу? тогда понятно, как я его обошел - у меня же не рассчитываемая формула была, а список констант. Т.е., если строка для Formula1 начинается с =, будет действовать это ограничение, а не 16383, правильно?
Тоже помню сталкивался. Обошёл кажется так - перед закрытием файла сам убивал все списки (иначе ругань при открытии), а при открытии макросом создавал их заново. Но лучше конечно ориентировать на диапазон.
Максим Зеленский пишет: Длина именно формулы, т.е. если условие представляет собой рассчитываемую формулу?
Нет. Для списков есть аргумент такой - Formula1. Неважно что Вы туда записываете - список перечисления одной строкой или вычисляемую формулу - длина не должна превышать 255 символов.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...