为什么同一过程中,on error goto ex: 只允许调用一次。比如说:
Dim aa As New Collection
'aa.Add "df", "d"
On Error GoTo ex:
For i = 0 To 2
aa ("ddf")
ex:
MsgBox "ok"
Next当循环到第二次时他就报错了。真的不解,,,,,请求解答!!

解决方案 »

  1.   

    你这个程序永远是会报错的。你应该在你的ex:前面加一句:Exit Sub这样当程序正常运行到ex:之前就会自动跳出,而不会再下去执行报错的那段程序了。
      

  2.   

    Dim aa As New Collection
      'aa.Add "df", "d"
      On Error GoTo ex:
      For i = 0 To 2
         aa ("ddf")
         ex:
         MsgBox "ok"
      Next1.我没有验证你的程序,但是,从程序上看,能从循环体外跳到循环体里吗?
    2.On Error GoTo ex:,将EX后的:号去掉.
      

  3.   

    ex放到循环体外面
    还有就是在跳转到错误的地方要加个if len(error)>0 then 执行错误陷阱代码
    有时候我用on error goto err 的时候如果不加上面那句不论有没有错误都会执行错误陷阱代码
      

  4.   

    你这个程序永远是会报错的。你应该在你的ex:前面加一句:Exit Sub这样当程序正常运行到ex:之前就会自动跳出,而不会再下去执行报错的那段程序了。
    On Error GoTo ex:
    放到第一条语句。
      

  5.   

    PRIVATE SUB **()
    Dim aa As New Collection
      'aa.Add "df", "d"
      On Error GoTo ex:
      For i = 0 To 2
         aa ("ddf")
      Next
    EXIT SUB
    ex:
    MsgBox "ok"
    END SUB
      

  6.   

    PRIVATE SUB **()
    Dim aa As New Collection
      'aa.Add "df", "d"
      On Error GoTo ex    '这里不要加冒号
      For i = 0 To 2
         aa ("ddf")
      Next
    EXIT SUB                 '如果程序正常,运行到这里就退出了
    ex:
    MsgBox "程序有错,不OK" '报错
    Resume Next              '如果程序出错,继续运行后面一句程序
    END SUB
    全部搞定啦,给分吧。
      

  7.   

    你应该在你的ex:前面加一句:Exit Sub
      

  8.   

    Dim aa As New Collection
    'aa.Add "df", "d"
    On Error GoTo ex:
    For i = 0 To 2
    aa ("ddf")
    ex:
    MsgBox "ok"
    Next肯定是要出错的Dim aa As New Collection
    'aa.Add "df", "d"
    On Error GoTo ex:
    For i = 0 To 2
    aa ("ddf")
    Next
    exit sub
    ex:
    MsgBox "ok"
    resumenext