2010-06-08 4 views

cevap

23

Daha da iyisi

For i = ListBox1.ListCount - 1 to 0 Step - 1 
     ListBox1.RemoveItem i 
Next i 
+0

Bir çekicilik gibi çalıştı, teşekkürler! – sooprise

+1

Her seferinde en üstteki öğeyi kaldırdığınızı işaret ederek (bir salak gibi mücadele ettikten sonra). Eğer bunu yapmaya çalışırsanız, o zaman yarım yol boyunca güzel bir sınır hatası alırsınız. – PsychoData

+0

@PsychoData anlamı yapabileceğiniz 'i için ListBox1.ListCount için 1 Adım -1' ve iyi çalışmalıdır. – ptpaterson

25

Psuedo kodu: öğeleri varken

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

Temelde, combobox'dan ilk öğeyi kaldırın. Tüm öğeler kaldırıldıktan (say = 0), kutunuz boş.

Yöntem 2:

 For i = 1 To ListBox1.ListCount 

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

Güncelleme - cevabım tam çözüm içermiyordu neden bilmiyorum: ayrı ayrı maalesef her birini kaldırmak gerekir

ComboBox1.Clear 
+1

+1 ortak yöntemidir - basit daha iyi – DataSmarter

+0

Üzgünüz, VBA, birleşik kutu denetimi için net bir yöntem sağlamaz. –

+2

@Sham Yemul: ComboBox.Clear'ın gerçekten de en azından Excel 2010'dan itibaren ActiveX ComboBox denetiminde çalıştığından emin olabilirim. – Aaron

4

en iyi yol:

Combobox1.items.clear(); 
+4

Bu, C# 'da iyi çalışır ancak VBA'da çalışmaz ... –

5

basit yolu:

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

İlk satır VBA uygulamasında çalışır! İkinci çizgi iyi değil. –

5

Sen ControlFormat yöntemi kullanabilirsiniz:

Sadece bu test ettik Erişim 2013'te
ComboBox1.ControlFormat.RemoveAllItems 
+0

Erişim VBA'sı yok –

0

:

While ComboBox1.ListCount > 0 
    ComboBox1.RemoveItem 0 
Wend 

İlginçtir, eğer Öğe listesini Özellikler'de ayarlarsınız, Form Görünümü'nden çıkıp Tasarım Görünümüne geri döndüğünüzde bu kaybolmaz.

kullanıcı formu comboboxes üzerinde .Clear yöntem sağlamaz Erişim VBA için
0

, bu çözüm benim için kusursuz çalışır:

If cbxCombobox.ListCount > 0 Then 
     For remloop = (cbxCombobox.ListCount - 1) To 0 Step -1 
      cbxCombobox.RemoveItem (remloop) 
     Next remloop 
    End If 
-1
Private Sub cmdClear_Click() 
    ComboBox1.Value = Null 
    ComboBox2.Value = Null 
End Sub 
+0

Lütfen kodun etrafına bağlam ekleyin. – coatless

-1

me.Combobox1.Clear

Bu, "Yöntem 2" için