Vba 我的 for 循环只删除了一半的行

Vba my for loop deletes only half of rows

我正在为投注计算做一个宏。我有以下双 for 循环,用于删除与 if 匹配的行,但它只删除真正匹配的行的一半

Sub calc()

    Dim db As String
    db = Worksheets("PRONO").Range("A1").Value

    Dim alldata As Workbook
    Dim i1 As Worksheet

    Set alldata = Workbooks(db)
    Set i1 = alldata.Worksheets("I1")



    For Each Match In Workbooks("BET EXCEL.xlsm").Worksheets("TEST").Range("A14:" & Range("A14").End(xlDown).Address)

        For Each Data In i1.Range("B2:" & i1.Range("B2").End(xlDown).Address)

            If CDate(Data.Value) > CDate(Match.Value) Then
                MsgBox (Data.Row)
                i1.Rows(Data.Row).Delete

            End If

        Next




    Next


End Sub

为什么?

看不懂

如果有人可以帮助我

这个很简单。当你删除时,比方说,第五行,下面的所有行都会上升。所以,第六排现在是第五排。但是你的循环转到了最近的第六个(以前的第七个),跳过了这个曾经是第六个的循环。 使用 FOR i = lastRow to 1 STEP -1 向上删除行。 (啊,lastRow必须先算出来)