我在电子表格中使用多选列表框(表单控件,而不是ActiveX)。我需要一个宏来取消选择列表中的所有项目。
根据我的阅读,这应该有效:
For i = 0 To ActiveSheet.Shapes("List Box 28").ListCount - 1
ActiveSheet.Shapes("List Box 28").Selected(i) = False
Next
但前两行告诉我 Object不支持此属性或方法。我怀疑此代码仅适用于ActiveX
,但我似乎无法找到适合表单控件的代码。
答案 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
但如果您只是取消选择所有选中的内容,请使用第一个代码 我只是展示了循环,以防它在将来对你和其他人有用。