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

Excel 取消选择表单控件列表框中的所有项目,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 但前两行告诉我对象不支持此属性或方法。我怀疑此代码仅适用于ActiveX,但我似乎找不

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

据我所知,这应该是可行的:

    For i = 0 To ActiveSheet.Shapes("List Box 28").ListCount - 1
       ActiveSheet.Shapes("List Box 28").Selected(i) = False
    Next
但前两行告诉我对象不支持此属性或方法。我怀疑此代码仅适用于
ActiveX
,但我似乎找不到用于表单控件的正确代码。

尝试一下:

ActiveSheet.Shapes("List Box 28").OLEFormat.Object.ListIndex = 0
必须先调用
OLEFormat对象
,然后才能使用列表框属性

此外,为了使循环正常工作,您可以尝试以下操作:

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
但是,如果您只是取消选择所有选定项,请使用第一个代码。

我刚刚展示了循环,以防它在将来对您和其他人有用处。

是否有选择模式或样式之类的东西?也许您需要切换选择模式,以便不选择任何模式