VBA / VB6 - Примусово відкривати ComboBox
Excel у поєднанні з VBA формує потужний інструмент для створення індивідуальних та автоматизованих рішень для аналізу даних. VBA має вбудовані елементи керування, такі як ComboBox, які дозволяють користувачам вибирати з вже заповненого списку або надавати власний вхід. Можна з'єднати два ComboBox, використовуючи метод SetFocus у користувацькому коді. Після цього користувач може запустити інший код, який використовує код, що повертається з одного ComboBox для ініціалізації іншого. Ця функція допомагає програмісту налаштувати код таким чином, що після того, як вибір зроблено в ComboBox1, це призведе до автоматичного відкриття другого ComboBox.
Щоб примусити ComboBox відкритися, є наступна функція ...
ComboBox1.DropDown
Але ... для цього ми маємо фокус ComboBox, і якщо команда з іншого управління не відкриється.
Щоб відкрити інший ComboBox, вам слід скористатися трюком:
- Помістіть 2 ComboBox на аркуші або UserForm і назвіть їх відповідно як ComboBox1 і CombBox2
- Використовуйте наступний код, щоб зв'язати два ComboBox:
Приватний Sub ComboBox1_Change () '========== Combo sur une feuille ========= 1' ComboBox2.Activate '========== Combo sur un UserForm ou VB6 ========= 2 'ComboBox2.SetFocus' ================================== ======== SendKeys "^ (F4)" Кінець Sub Приватний Sub ComboBox2_KeyDown (ByVal KeyCode як MSForms.ReturnInteger, ByVal Зсув як ціле число) Якщо KeyCode = 16, то ComboBox2.DropDown Кінець, якщо закінчити Sub
По очищенню рядка 1 або 2 залежно від місця розташування ComboBox.
Результат: коли ви робите вибір на ComboBox 1, другий відкривається автоматично.
Завантажити зразок для Excel 97 - 2003
- Сервер 1: //sd-5.archive-host.com/membres/up/b05c9f3873215e8d2df70f056b74dce61198c32d/ASTUCES/3_combo__DropDown.xls