在列表框中,用户可以选择添加日期。我还试图通过单击按钮为用户提供删除日期的选项。我的代码如下所示:
Private Sub RemoveDate_Click()
Dim objSpecifyDates As Object
Dim i As Integer
Set objSpecifyDates = ActiveSheet.OLEObjects("SpecifyDatesListBox").Object
If objSpecifyDates.listCount = 0 Then
Exit Sub
Else
For i = 0 To objSpecifyDates.listCount - 1
If Not objSpecifyDates.Selected(i) Then
objSpecifyDates.RemoveItem (i)
End If
Next
End If
End Sub
此代码的问题是一旦项被删除,它会在最后一个循环返回错误,因为该索引不存在。有没有办法在删除项目后重启循环?
答案 0 :(得分:2)
当删除这样的东西时,你需要向后移动整个集合。
For i = objSpecifyDates.listCount - 1 To 0 Step -1
...
Next i