2010-07-22 74 views
3

在VBA中,組合框的ListIndex屬性顯示組合框中值的整個列表(數組)中所選項目的索引(從0開始)。如果沒有選擇,它會顯示-1。沒有選擇的組合框當前值的ListIndex

當我用一個Combobox和它的最後一個值在Excel中調出一張表時,它的ListIndex爲-1,而不是該項的實際ListIndex。

VBA中快速獲取當前非選定值的ListIndex的訣竅是什麼?

我知道我可以手動檢查數組我自己(.List屬性),但我希望VBA有一些更快的方法來做到這一點。

+0

您是否在'Workbook_Open'上通過'Add'方法填充'ComboBox',輸入'ListFillRange'或其他方法? – marg 2010-07-23 07:45:04

回答

1

從上的ListIndex物業VBA幫助:

ListIndex屬性包含所選行的一個 列表中的索引。 ListIndex的值範圍從-1到1,小於列表中行數(即ListCount - 1)的總數 。當沒有行選擇 時,ListIndex返回-1。當用戶在列表框或組合框中選擇一行時,系統設置ListIndex值。

所以我假設你沒有選擇任何東西,但試圖讀取選定的值。這可以解釋爲什麼ListIndex返回-1。