2010-07-13 80 views
1

我有一個Excel 2003文件。在第一張紙上,我放了一個組合框。之後,我分配一個宏來處理更改事件。該宏位於VB編輯器的Project Explorer框中的模塊中。在宏中,我想寫一些行來獲取組合框的選定項目索引的索引。我應該寫什麼?如何使用VBA獲取Excel電子表格中組合框的索引?

我寫的行

If ActiveSheet.cbFilter.Index = 1 Then 

但它一直養(組合框的名稱是「cbFilter」)的錯誤。錯誤消息是「對象不支持此方法的屬性」。請幫幫我。

提前許多感謝,

哈里斯

+0

它是一個Form控件或ActiveX控件? – RBarryYoung 2013-05-06 15:38:00

回答

0

有你添加的項目到您的組合列表?

在你的調試器中試試這些代碼段:首先調用Preload()一次,然後從組合中選擇任何東西,然後運行Readout()....這應該給你一個提示。

Sub Preload() 
    ActiveSheet.ComboBox1.AddItem "111" 
    ActiveSheet.ComboBox1.AddItem "222" 
    ActiveSheet.ComboBox1.AddItem "333" 
End Sub 

Sub ReadOut() 
    ActiveSheet.[A1] = ActiveSheet.ComboBox1.ListIndex 
    ActiveSheet.[A2] = ActiveSheet.ComboBox1 
End Sub 

你也應該檢查你已經創建了一個參考MSForms 2.0對象庫(FM20.DLL - 或類似)

編輯:

我只是測試空組合的情況下..索引將爲-1

0

嘗試刪除「ActiveSheet」。聲明的一部分,我的猜測是組合已經在該表單內。

來源:經驗

問候

+1

大聲笑,整個「來源:經驗」部分是不需要的。 – Murkantilism 2013-05-06 15:50:55

0

試試這個。如果您查看對象瀏覽器cbFilter對象是sheet1的屬性,並且可以從模塊中引用如下。

MsgBox Sheet1.cbFilter.ListIndex 


If Sheet1.cbFilter.ListIndex = 1 Then 

enter image description here

相關問題