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

标签 excel vba

我在电子表格上使用多选列表框(表单控件,而不是 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

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

关于excel - 取消选择表单控件列表框中的所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48198307/

相关文章:

未登录时 Excel 不会启动

excel - 条件格式,搜索公式

vba - 如何获取单元格在某个范围内的位置?

excel - 如何通过vba将一个包含多个工作表的excel文件导入到 Access 表中

python - 在 excel 中隐藏行不起作用 - pywin32

excel - 复制工作簿名称,然后使用 vba 激活具有复制名称的工作簿

c# - csvhelper 一切都写在 Excel 的一栏中

excel - Application.WorksheetFunction.VLookup 无匹配错误

excel - VBA - 从 NOW 函数中删除秒数

c# - 使用 OLEDB 导入 Excel 不引入折叠组