在最后读取的行重新启动循环
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
我正在 运行 循环以从 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