Excel, выпадающие списки

2893
Daniel

Когда я создавал настраиваемые раскрывающиеся списки в Excel, мои листы Excel не сокращались до меньшего списка, когда я начинаю печатать в ячейке раскрывающегося списка.

Например, если мой выпадающий список предназначен для штатов США [AL ... WY], и я набираю символ «N», почему мой ниспадающий список не дает мне подмножество опций [... NY ... NJ. ..]. Можно ли сделать автозаполнение подмножества?

Примечание. Я создал свои выпадающие списки в Excel следующим образом: http://danielk.org/blog/2009/09/22/excel/

6
Что за выпадающий список? dkusleika 14 лет назад 0

1 ответ на вопрос

3
DaveParillo

Это потому, что не так работает проверка данных в Excel. Вам нужно использовать активный X-контроль. См. Страницу проверки данных Contextures в целом и ее примеры ComboBox Data Validation и ComboBox Depend в частности.

Обновить

Если вы используете ее примеры, замените обработчик события TempCombo_KeyDown на TempCombo_KeyUp. По крайней мере, на моем Excel (Excel 2003 SP2) он падает.

Больше подробностей о примере, на который я вам указал:

Я не уверен, почему замена TempCombo_KeyDown на TempCombo_KeyUp работает, но это может быть связано с KeyCode. MSDN подразумевает, что KeyCode на самом деле является указателем и для всех практических целей передается через ref, хотя в подписи написано ByVal. Сбой всегда происходит в строке End Sub строки TempCombo_KeyDown.

Это только предположение с моей стороны, но, обработав событие KeyDown, после активации новой ячейки, если у нее есть TempCombo, тогда объект активируется и может обработать событие KeyUp. Если целевая ячейка не активирует TempCombo, событие KeyUp не имеет действительной ссылки на объект, и вы получаете неприятный сбой.

Ничего себе MS действительно делает это сложным, они должны действительно упростить это в своей следующей версии Excel! Daniel 14 лет назад 1

Похожие вопросы