Удаление всех элементов из ComboBox?

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

Ответы

Ответ 1

Вам нужно удалить каждый отдельно, к сожалению:

       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 

Ответ 2

Псевдоэкспертный код (обновленный с помощью фактического кода):

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

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

Метод 2: Еще лучше

ComboBox1.Clear

Ответ 3

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

Combobox1.RowSource = ""  'Clear the list
Combobox1.Clear           'Clear the selected text

Ответ 4

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

ComboBox1.ControlFormat.RemoveAllItems

Ответ 5

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

Combobox1.items.clear();

Ответ 6

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

While ComboBox1.ListCount > 0
    ComboBox1.RemoveItem 0
Wend

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

Ответ 7

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

   If cbxCombobox.ListCount > 0 Then
        For remloop = (cbxCombobox.ListCount - 1) To 0 Step -1
            cbxCombobox.RemoveItem (remloop)
        Next remloop
   End If

Ответ 8

Private Sub cmdClear_Click()
    ComboBox1.Value = Null
    ComboBox2.Value = Null
End Sub

Ответ 9

me.Combobox1.Clear

Это общий метод