取消选择“表单控件列表框”中的所有项目

时间:2018-01-11 00:42:25

标签: excel vba excel-vba

我在电子表格中使用多选列表框(表单控件,而不是ActiveX)。我需要一个宏来取消选择列表中的所有项目。

根据我的阅读,这应该有效:

    For i = 0 To ActiveSheet.Shapes("List Box 28").ListCount - 1
       ActiveSheet.Shapes("List Box 28").Selected(i) = False
    Next

但前两行告诉我 Object不支持此属性或方法。我怀疑此代码仅适用于ActiveX,但我似乎无法找到适合表单控件的代码。

1 个答案:

答案 0 :(得分:1)

尝试一下:

ActiveSheet.Shapes("List Box 28").OLEFormat.Object.ListIndex = 0

在使用列表框属性之前,您必须先调用OLEFormat Object

另外,要使循环正常工作,您可以尝试以下方法:

Dim i As Long
Dim lb As ListBox '/* Declare a listbox object */

With ActiveSheet.Shapes("List Box 28")
    Set lb = .OLEFormat.Object '/* set to make intellisense  kick in */
    With lb
        For i = 1 To .ListCount '/* indexing starts at 1 and not 0 */
            .Selected(i) = False
        Next
    End With
End With

但如果您只是取消选择所有选中的内容,请使用第一个代码 我只是展示了循环,以防它在将来对你和其他人有用。