删除列表框中的未选项后,如何重新启动循环?

时间:2014-06-10 17:38:24

标签: excel vba listbox

在列表框中,用户可以选择添加日期。我还试图通过单击按钮为用户提供删除日期的选项。我的代码如下所示:

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

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

1 个答案:

答案 0 :(得分:2)

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

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