vb使用On Error goto处理后,能回到循环里吗解决办法
vb使用On Error goto处理后,能回到循环里吗
vb程序循环处理一些网页,比如循环 i=1 to 100,在i=50时,发生错误,需要再次登陆,这时用On Error goto处理后,想让程序回到循环中,重新在发生错误的地方继续循环,即从i=50继续循环,而不是从头开循环。请问该如何编程。
------解决方案--------------------
建议根据你已写的实现代码,考虑以下两个方案:
1,把i定义成过程内的static型变量
2,把i定义成模块级变量
对了,这两种方式下,好像你的那个循环都定义成do while ... loop型循环较好,看你的问题中的写法,似乎用的是for
DO LOOP语法参考:
Do While InStr (position, longstring, target)
position = InStr(position, longstring, target)_
+ 1
count = count + 1
Loop
------解决方案--------------------
resume next
------解决方案--------------------
vb程序循环处理一些网页,比如循环 i=1 to 100,在i=50时,发生错误,需要再次登陆,这时用On Error goto处理后,想让程序回到循环中,重新在发生错误的地方继续循环,即从i=50继续循环,而不是从头开循环。请问该如何编程。
------解决方案--------------------
建议根据你已写的实现代码,考虑以下两个方案:
1,把i定义成过程内的static型变量
2,把i定义成模块级变量
对了,这两种方式下,好像你的那个循环都定义成do while ... loop型循环较好,看你的问题中的写法,似乎用的是for
DO LOOP语法参考:
Do While InStr (position, longstring, target)
position = InStr(position, longstring, target)_
+ 1
count = count + 1
Loop
------解决方案--------------------
resume next
------解决方案--------------------
- VB code
sub someproc() on error goto herr dim i as long for i=1 to 100 Again: ' 做事情 ... ' 也许会产生异常 ... next exit sub hErr: ' 处理错误 ... ' ' 然后可以 resume 0 返回到出错位置; ' 或者这样 resume next 返回到出错位置的下一条语句; ' 也可以 resume Again 返回到具体位置. end sub
------解决方案--------------------
建议 Resume Next
------解决方案--------------------
- VB code
Option Explicit Sub Main() Dim i As Long Dim lSum As Long On Error GoTo ErrHandler For i = 1 To 100 If i = 50 Then Err.Raise 5 '模拟错误' lSum = lSum + i Next ExitEntry: Debug.Print lSum Exit Sub ErrHandler: Debug.Print Err.Description Resume Next End Sub