Мерзкий глюк с выпадающими списками

При работе над очередным проектом обнаружил весьма неприятный глюк с выпадающими списками в Excel.

Если при создании списка в качестве источника (Source) задавался не диапазон ячеек, а текст, то его длина (оказывается!) ограничена 8192 (2 в 13-й степени) символами. Причем при превышении этого значения файл (или макрос, если это делалось в нем) вылетает с ошибкой, а после перезапуска - умирают все выпадающие списки во всех ячейках листа, где было превышение. Нифига себе подарочек.
Вот простой макрос для желающих испытать на себе. Вылетает четко на 8192 символе любого списка и рушит все другие списки листа:
Sub Test_Dropdown_Limit()   
   For i = 1 To 10000   
      With [a1].Validation   
         l = l & "A,"  
         Debug.Print i & " " & Len(l)   
        .Delete   
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
                 Operator:=xlBetween, Formula1:=l   
       End With  
   Next i   
End Sub  
DwMan
3 января 2013 0:32
Где-то уже подборка таких глюков есть?
3 января 2013 0:35
Явным образом собранных - нет. Но идея создать такой список - хороша, подумаю.
Михаил
3 января 2013 0:33
Зачем нужен выпадающий список с 8192 значениями? Как его можно будет использовать?
vigor
3 января 2013 0:33
Бывает заказчик хочет и больше.У меня была такая же штука.Очень плохо и не мог понять почему.Пришлось хитрить.
3 января 2013 0:36
Не 8192 значения, а 8192 символа. Вариантов выбора может быть всего сотни полторы (как и было в проекте), но каждый описан подробно несколькими десятками слов - вот и превышение.
Михаил
3 января 2013 0:34
Можно список создать рядом в столбце, а в Data Validation указать на него ссылку. Пробовал - работает (более 13000 символов).
3 января 2013 0:36
Ну, да... так примерно и выкручивался в итоге.
20 октября 2015 10:23
Ладно бы 8192, но если вы сохраните такой файл и попробуете открыть, то окажется, что любая ячейка, имеющая data validation list длиннее 255 символов будет рассматриваться, как ошибка в файле, Excel будет считать такой файл повреждённым и будет предлагать его лечить, удаляя из таких ячеек validation rule. И речь не про старый формат файла XLS, а про новый XLSX и др.
Наверх