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