2016-04-12 28 views
-1

Excel 2010'u burada kullanın. Boş bir sayfadan başlayarak, bir ActiveX açılan kutu oluşturuyorum. (Sırasıyla, bu dizeleri "üç" "bir" kelime ile A3, "iki" ve:ComboBox _Click ve _Change olayları, ListFillRange düzenlemesinde tetikleniyor mu? (Excel VBA)

1) özellikleri pencere açın ve set:

ListFillRange = "A1:A3" 

2) manuel olarak her aralık A1 hücre doldurmak keyfi).

3) Değerlerin listede görünüp görünmediğini kontrol etmek için açılan kutu açılan oku tıklayın.

4) Tasarım Modu etkinleştirmek ve ardından açılan kutu adı olduğunu varsayar ki (şu kodu yapıştırın VBA editörü açmak için açılan kutu çift tıklayın olduğu "ComboBox1"):

Private Sub ComboBox1_change() 
    MsgBox "Change event" 
End Sub 

Private Sub ComboBox1_click() 
    MsgBox "Click event" 
End Sub 

5) Birleşik kutuyu içeren sayfaya dönün ve Tasarım Modunu devre dışı bırakın.

6) Birleşik açılan kutu düğmesini tıklatın ve listeden en üstteki öğeyi ("bir") seçin. Fare düğmesini serbest bıraktıktan hemen sonra, yukarıdaki Subs tarafından belirtildiği gibi, _click olayı diğeri _change olayı için iki tane MsgBox penceresi almalısınız. Adım 7 tetikler hem _CLICK ve _change: "bir" seçili olarak

7), ListFillRange (yani, örneğin, hücre "A2")

Sonuç hücrelerin herhangi bir çift tıklayarak olaylar! Bu, ListFillRange aralığında bir değer VE düzenlendiğinde, açılan kutudaki dizgenin ListFillRange'daki değerlerin en az biri ile tam olarak eşleştiği her durumda olur.

Bunun neden olabileceği hakkında bir fikriniz var mı? Bu bir hata mı? Şimdiden teşekkürler!

cevap

0

ActiveX denetimleri için ListFillRange kullanmıyorum. Muhtemelen bunları kullanmaktan kaçınmalısınız. Veri durağan ise, kod aracılığıyla AddItem kullanarak popülasyon yapmayı deneyin.