在最后读取的行重新启动循环

Restart Loop At Last Read Row

我正在 运行 循环以从 Excel 读取数据,当我收到错误时我的脚本停止并在 [=13= 中给我一个 vbAbortRetryIgnore 选项].如果出现错误,我希望能够在使用 "Retry" 按钮停止的那一行的开头重新启动循环,或者跳过该行并使用 "Ignore" 转到下一行按钮。

我原来的循环如下:

Sub Main
    subGoToScreen "DELP", "********", "0000000001"
    Dim rw
    TITLE = "DELP Script"
    rw = 2
    Do While oExcelObject.CountA(oExcelSheet.Rows(rw)) > 0
        subDoWork oExcelSheet.Rows(rw)
        rw = rw + 1
    Loop
End Sub

然后,如果我收到这样的错误 Len(rw.Cells(1).Value) < 8 然后如果选择了 "Retry",我想返回到该行的第一个单元格重新启动循环。如果选择 "Retry",我将使用此循环:

Sub MainRetry
    Dim rw
    TITLE = "DELP Script"
    rw = oExcelSheet.Rows(rw).Cells(1)

    Do While oExcelObject.CountA(oExcelSheet.Rows(rw)) > 0
        subDoWork oExcelSheet.Rows(rw)
        rw = rw + 1
    Loop
End Sub

它不起作用,并给我一个 运行 时间错误。有谁知道如何识别我正在阅读的当前行、记住该行并重新阅读该行或移至下一行?目前,如果没有第二个循环,它会重新读取 rw.Cells(2).Value 处的 sheet。

我是这样工作的:

我定义了一个CurrentRow和一个LastRow如下:

CurrentRow          = rw.Cells(8).Row
LastRow             = CurrentRow - 1

然后我创建了两个新的子过程,一个处理重试,一个处理忽略,并在使用时将重试的起点设置为 rw = LastRow + 1 并将忽略设置为 rw = CurrentRow + 1同一个循环

Do While oExcelObject.CountA(oExcelSheet.Rows(rw)) > 0
    subDoWork oExcelSheet.Rows(rw)
    rw = rw + 1
Loop