Excel 未选择的组合框当前值的列表索引

Excel 未选择的组合框当前值的列表索引,excel,vba,combobox,Excel,Vba,Combobox,在VBA中,组合框的ListIndex属性显示组合框中值的整体列表(数组)中选定项的索引(从0开始)。如果没有选择,则显示-1 当我在Excel中打开一个带有组合框和最后一个值的工作表时,它的ListIndex为-1,而不是项目的实际ListIndex 在VBA中,快速获取当前未选定值的ListIndex的诀窍是什么 我知道我可以自己手动检查数组(.List属性),但我希望VBA有更快的方法来执行此操作。从VBA帮助中的ListIndex属性: ListIndex属性包含列表中选定行的索引 列表

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

当我在Excel中打开一个带有组合框和最后一个值的工作表时,它的ListIndex为-1,而不是项目的实际ListIndex

在VBA中,快速获取当前未选定值的ListIndex的诀窍是什么


我知道我可以自己手动检查数组(.List属性),但我希望VBA有更快的方法来执行此操作。

从VBA帮助中的ListIndex属性:

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


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

这对我检索组合中显示项的索引很有用

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

您是否通过
工作簿_Open
上的
添加
方法、设置
列表填充范围
或其他方法来填充
组合框