返回列表 上一主題 發帖

2 個 ON ERROR GOTO ERROR 出現錯誤

個人建議應盡可能不使用 On Error..
  1. Sub crosscheck_new_item()
  2. Application.Calculation = xlCalculationManual
  3. Dim i As Long
  4. On Error Resume Next
  5. Worksheets("2019 TRADING SOC NO.").Select
  6. If Err Then Err.Clear: GoTo error1
  7. For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
  8.     Worksheets("2019 TRADING SOC NO.").Range("L" & i).Value = WorksheetFunction.VLookup(Worksheets("2019 TRADING SOC NO.").Range("E" & i).Value, Worksheets("成本 (2020.09.28)").Range("D:AL"), 35, 0)
  9.     Worksheets("2019 TRADING SOC NO.").Range("M" & i).Value = "成本表"
  10.     Next

  11. error1:
  12.     Worksheets("2019 TRADING SOC NO.").Range("L" & i).Value = WorksheetFunction.VLookup(Worksheets("2019 TRADING SOC NO.").Range("E" & i).Value, Worksheets("期貨總匯 (2020.09.16)").Range("A:G"), 7, 0)
  13.     If Err Then Err.Clear: GoTo error2
  14.     Worksheets("2019 TRADING SOC NO.").Range("M" & i).Value = "期貨表"
  15.    
  16. error2:
  17.     Worksheets("2019 TRADING SOC NO.").Range("L" & i).Value = ""
  18.     If Err Then MsgBox "Error has found"

  19. Application.Calculation = xlCalculationAutomatic
  20. End Sub
複製代碼

TOP

首先你的程式碼 Worksheets("2019 TRADING SOC NO.") 跟本不存在
On Error Resume Next...功能是讓程式不理會錯誤繼續跑下去, On Error Goto ..跑到指定行繼續跑
  1. Sub crosscheck_new_item()
  2. Application.Calculation = xlCalculationManual
  3. Dim i As Long, d As Object
  4. Set d = CreateObject("scripting.dictionary")
  5. For Each s In Sheets
  6.     d(s) = "" '創建字典收氣所有頁名
  7. Next
  8. If Not d.exists("2019 TRADING SOC NO.") Then GoTo error1    '如果頁名"2019 TRADING SOC NO."不存在跑到指定行繼續跑

  9. 'On Error GoTo error1
  10. Worksheets("2019 TRADING SOC NO.").Select
  11. For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
  12.     Worksheets("2019 TRADING SOC NO.").Range("L" & i).Value = WorksheetFunction.VLookup(Worksheets("2019 TRADING SOC NO.").Range("E" & i).Value, Worksheets("成本 (2020.09.28)").Range("D:AL"), 35, 0)
  13.     Worksheets("2019 TRADING SOC NO.").Range("M" & i).Value = "成本表"
  14.     Next
  15. error1:
  16. If Not d.exists("2019 TRADING SOC NO.") Then GoTo error2
  17. 'On Error GoTo error2
  18.     Worksheets("2019 TRADING SOC NO.").Range("L" & i).Value = WorksheetFunction.VLookup(Worksheets("2019 TRADING SOC NO.").Range("E" & i).Value, Worksheets("期貨總匯 (2020.09.16)").Range("A:G"), 7, 0)
  19.     Worksheets("2019 TRADING SOC NO.").Range("M" & i).Value = "期貨表"
  20. error2:
  21.     If Not d.exists("2019 TRADING SOC NO.") Then GoTo 1000
  22.     Worksheets("2019 TRADING SOC NO.").Range("L" & i).Value = ""
  23. 1000
  24. Application.Calculation = xlCalculationAutomatic
  25. End Sub
複製代碼

TOP

        靜思自在 : 謊言像一朵盛開的鮮花,外表美麗,生命短暫。
返回列表 上一主題