返回列表 上一主題 發帖

[發問] 關於 on error resume next

[發問] 關於 on error resume next

On Error Resume Next '遇錯誤要繼續執行
Reset:
x = InputBox("請輸入預瀏覽之排程日期", , "請輸入日期 <例如 1007 1010 >")
ActiveWorkbook.FollowHyperlink "http://zipsum/fileupload/LCD6RPT/01.前排程相關資訊/00.LCD6%20前段排程%20Watch%20This%20!!/201510/LCD6%20生產排程%20與%20Watch%20This" & x & "前排版.xls"
If Err.Number <> 0 Then '若前面有發生錯誤
result = MsgBox(prompt:=Err.Description & vbCrLf & vbCrLf & "要繼續執行嗎?", _
Buttons:=vbYesNo, Title:="發生錯誤", HelpFile:=Err.HelpFile, Context:=Err.HelpContext)
GoTo Reset
If Not result = vbYes Then Exit Sub '若按 "否" 就結束
End If
End Sub

小弟的問題在於如果出現錯誤,按否應該是會結束,結果他變成無限迴圈,重覆執行inputbox
能否請各位達人幫幫忙 幫小弟修改一下  出現錯誤 按是重新執行 按否直接離開
另一問 如果檔案中有網頁的更新連結訊息,是否也會被當成是錯誤代碼 帶入 on error 中呢??

回復 1# feecshyrnd
  1. GoTo Reset
  2. If Not result = vbYes Then Exit Sub '若按 "否" 就結束
複製代碼
把這二句順序對調就行了,因為此寫法是先直接跳回reset:,
因此沒有執行到If Not result = vbYes Then Exit Sub '若按 "否" 就結束,
所以才會造成無限迴圈。

TOP

回復 1# feecshyrnd
程式的偵錯
vba視窗 -> 要偵錯的模組->滑鼠移到要偵錯程序中
按F8逐步執行看成是如何執行程式碼

圖示查看變數



感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 1# feecshyrnd

    If Not result = vbYes Then Exit Sub '若按 "否" 就結束
    Err.Clear     '清除 Err
    GoTo Reset
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

感謝各位的幫忙 真的沒想到只是一個順序的問題 竟然能導致無限迴圈
小弟受教了 大家太利害了 謝謝

TOP

        靜思自在 : 要批評別人時,先想想自己是否完美無缺。
返回列表 上一主題