6

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

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

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

1 ответ1

3

Это потому, что не так работает проверка данных в 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 не имеет действительной ссылки на объект, и вы получаете неприятный сбой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .