无选择的组合框当前值的ListIndex

时间:2010-07-22 18:35:54

标签: excel vba combobox

在VBA中,Combobox的ListIndex属性显示在Combobox中值的整个列表(数组)中选择的项目的索引(从0开始)。如果没有选择,则显示-1。

当我在Excel中使用Combobox及其中的最后一个值调出一张工作表时,它会产生一个ListIndex为-1,而不是该项目的实际ListIndex。

VBA快速获取当前非选定值的ListIndex有什么诀窍?

我知道我可以自己手动检查数组(.List属性),但我希望VBA有更快的方法来做到这一点。

2 个答案:

答案 0 :(得分:1)

来自 ListIndex 属性的VBA帮助:

  

ListIndex属性包含a中所选行的索引   名单。 ListIndex的值范围从-1到小于总数   列表中的行数(即ListCount - 1)。没有行时   选中,ListIndex返回-1。当用户选择一行中的行时   ListBox或ComboBox,系统设置ListIndex值。

所以我假设您没有选择任何内容,而是尝试读取所选值。这可能解释了为什么ListIndex返回-1。

答案 1 :(得分:0)

这对我来说可以检索组合中显示项目的索引。

        Dim dst As Worksheet: Set dst = Worksheets("MyData")
        MsgBox (dst.OLEObjects("combobox1").Object.ListIndex)