一旦删除列表框中的非选定项目,我该如何重新启动循环?

在列表框上,用户可以select添加date。 我正在尝试给用户select通过单击button来删除date。 我的代码如下所示:

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 

这个代码的问题是一旦一个项目被删除,它会在最后一个循环返回错误,因为该索引不存在。 有没有办法重新启动循环,一旦它删除一个项目?

删除这样的东西时,你需要向后移动集合。

 For i = objSpecifyDates.listCount - 1 To 0 Step -1 ... Next i