Удалить все элементы из ComboBox? - PullRequest
16 голосов
/ 08 июня 2010

Как программно удалить все элементы из выпадающего списка в VBA?

Ответы [ 9 ]

28 голосов
/ 08 июня 2010

Код Psuedo впереди (обновляется с помощью фактического кода):

Do While ComboBox1.ListCount > 0
    ComboBox1.RemoveItem (0)
Loop

Как правило, пока у вас есть предметы, удалите первый элемент из списка. После того, как все предметы будут удалены (количество = 0), ваш ящик пуст.

Способ 2: еще лучше

ComboBox1.Clear
27 голосов
/ 08 июня 2010

К сожалению, вам нужно удалить каждого из них:

       For i = 1 To ListBox1.ListCount

           'Remove an item from the ListBox using ListBox1.RemoveItem 
       Next i

Обновление - я не знаю, почему мой ответ не включал полное решение:

For i = ListBox1.ListCount - 1 to 0 Step - 1 
        ListBox1.RemoveItem i 
Next i 
10 голосов
/ 10 марта 2015

Самый простой способ:

Combobox1.RowSource = ""  'Clear the list
Combobox1.Clear           'Clear the selected text
5 голосов
/ 24 августа 2015

Вы можете использовать метод ControlFormat:

ComboBox1.ControlFormat.RemoveAllItems
3 голосов
/ 18 июля 2012

Лучший способ:

Combobox1.items.clear();
1 голос
/ 24 февраля 2016

Для Access VBA, который не предоставляет метод .clear в выпадающих списках пользовательских форм, это решение работает без нареканий:

   If cbxCombobox.ListCount > 0 Then
        For remloop = (cbxCombobox.ListCount - 1) To 0 Step -1
            cbxCombobox.RemoveItem (remloop)
        Next remloop
   End If
0 голосов
/ 08 августа 2016

me.Combobox1.Clear

Это распространенный метод

0 голосов
/ 17 мая 2016
Private Sub cmdClear_Click()
    ComboBox1.Value = Null
    ComboBox2.Value = Null
End Sub
0 голосов
/ 17 февраля 2016

В Access 2013 я только что проверил это:

While ComboBox1.ListCount > 0
    ComboBox1.RemoveItem 0
Wend

Интересно, что если вы зададите список элементов в Свойствах, он не будет утерян при выходе из представления формы и возвращении в представление дизайна.

...