2013-10-25 5 views
2

Я запускаю 32-разрядную версию Excel 2010. Я создал несколько комбинированных блоков ActiveX Control, и у них есть все числа записей в их раскрывающихся списках. Дело в том, что вместо того, чтобы использовать мышь для прокрутки списка, я хочу использовать прокрутку мыши для прокрутки списка, но на самом деле это не работает. Когда я просматриваю список, он прокручивает весь список вниз, а не содержимое в нем. Так кто-нибудь знает, как добавить эту функцию к ней?VBA Excel Combobox: проблема с прокруткой выпадающего списка

+1

http://stackoverflow.com/questions/15992475/excel-vba-how-to-enable-mouse-wheel-scrolling-in-combobox-listbox может помочь –

+0

и http://www.mrexcel.com/ forum/excel-questions/559658-combobox-scroll-down-enabled.html –

+0

Вы могли заставить это работать? Я попытался использовать приведенный ниже код, и он не работает, он останавливает прокрутку страницы, но все же не позволяет прокручивать выпадающий список. Если бы вы могли заставить его работать, можете ли вы отправить код, пожалуйста? – Chris

ответ

2

Я использовал этот метод, чтобы остановить удаление списка из поля со списком и перемещение по листу с помощью прокрутки мыши. Фактически это отключает прокрутку мыши, но вы можете перемещать мышь, чтобы выбрать элемент, и, если появится, нажмите правую полосу прокрутки.

  1. Выберите строку (ы), где вы разместили комбо Box ActiveX и лист
  2. Тип именованный диапазон в строке формул и нажмите клавишу ВВОД. например: "rngJobRoleCombo"
  3. правой кнопкой мыши на элементе управления в режиме развития, и выберите "Просмотр кода"
  4. Выберите GotFocus событие элемента управления

    Private Sub cboJobRole_GotFocus() 
        Me.ScrollArea = Range("rngJobRoleCombos").Address 
    End Sub 
    
  5. Выберите элементы управления LostFocus событие

    Private Sub cboJobRole_LostFocus() 
        Me.ScrollArea = "" 
    End Sub 
    

Это ограничивает прокрутку мыши до адреса диапазона ячеек рабочего листа, когда элемент управления находится в фокусе.

+0

Привет, Нил, это почти то, что я ищу. Я тоже использую активную сортировку X. Я попытался использовать указанный вами код, и он предотвращает прокрутку во время выбора combobox. Приятно, что страница не прокручивается во время выпадающего списка, но combobox все равно не будет прокручивать список. Один из моих ящиков называется cboSites, поэтому, когда у вас есть cboJobRole в частной части, я просто заменил его на cboSites. Есть ли что-то еще, что мне нужно сделать? – Chris

+0

Я думаю, что проблема с кодом заключается в том, что вы указываете область прокрутки в строке. Какой ComboBox находится в строке, но не является частью строки или связан с этой строкой. Если combobox на самом деле является выпадающим списком в ячейке, то я думаю, что это сработает, но поскольку это объект, который движется и может быть размещен в любом месте, определенный «ScrollArea» не связывается с тем, что нужно прокручивать. Это моя логика, но если это действительно работает для вас, тогда, пожалуйста, дайте мне знать, что я делаю неправильно. – Chris

+0

Thumbs up from me. В нем не рассматривается проблема прокрутки поля со списком, но она устраняет проблему с пользователем, связанную с невозможностью прокрутки. (при условии, что вы ОЧЕНЬ осторожны в разблокировке прокрутки), это может вызвать некоторые проблемы) –

Смежные вопросы