2 個 ON ERROR GOTO ERROR 出現錯誤
- 帖子
- 163
- 主題
- 45
- 精華
- 0
- 積分
- 246
- 點名
- 1
- 作業系統
- win7
- 軟體版本
- ie
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2015-7-8
- 最後登錄
- 2025-3-8
|
2 個 ON ERROR GOTO ERROR 出現錯誤
本帖最後由 mdr0465 於 2020-10-3 17:52 編輯
各位大大你好
我在"L"欄的儲存格, 用VLOOKUP在 "2019 SOC NO." 里E 的資料搜尋"成本"的D欄, 但如果成本沒有就會在"期貨" 如果再沒有找到就會顯示空格,
如成功找到配對就會在"K"欄註明在那一個活薄頁找到配對
但我用2 個 ON ERROR GOTO ERROR1 ,ON ERROR GOTO ERROR 2, 就會出現問題
請各位幫忙看看我那里出錯, 謝謝
如表達得唔好,請見諒 |
|
|
|
|
|
|
- 帖子
- 262
- 主題
- 8
- 精華
- 0
- 積分
- 280
- 點名
- 0
- 作業系統
- xp
- 軟體版本
- Office 2007
- 閱讀權限
- 20
- 性別
- 男
- 來自
- HK
- 註冊時間
- 2015-8-11
- 最後登錄
- 2025-3-24

|
2#
發表於 2020-10-5 17:19
| 只看該作者
個人建議應盡可能不使用 On Error..- Sub crosscheck_new_item()
- Application.Calculation = xlCalculationManual
- Dim i As Long
- On Error Resume Next
- Worksheets("2019 TRADING SOC NO.").Select
- If Err Then Err.Clear: GoTo error1
- For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
- 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)
- Worksheets("2019 TRADING SOC NO.").Range("M" & i).Value = "成本表"
- Next
- error1:
- 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)
- If Err Then Err.Clear: GoTo error2
- Worksheets("2019 TRADING SOC NO.").Range("M" & i).Value = "期貨表"
-
- error2:
- Worksheets("2019 TRADING SOC NO.").Range("L" & i).Value = ""
- If Err Then MsgBox "Error has found"
- Application.Calculation = xlCalculationAutomatic
- End Sub
複製代碼 |
|
|
|
|
|
|
- 帖子
- 163
- 主題
- 45
- 精華
- 0
- 積分
- 246
- 點名
- 1
- 作業系統
- win7
- 軟體版本
- ie
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2015-7-8
- 最後登錄
- 2025-3-8
|
3#
發表於 2020-10-5 19:03
| 只看該作者
回復 2# ikboy
IKBOY 謝謝你的回覆,
但當中VLOOKUP 是有配對成功的, 但是公式是沒有跳到07,08,09段的公式, 請問我應如何修改呢??
謝謝幫忙 |
|
|
|
|
|
|
- 帖子
- 262
- 主題
- 8
- 精華
- 0
- 積分
- 280
- 點名
- 0
- 作業系統
- xp
- 軟體版本
- Office 2007
- 閱讀權限
- 20
- 性別
- 男
- 來自
- HK
- 註冊時間
- 2015-8-11
- 最後登錄
- 2025-3-24

|
4#
發表於 2020-10-6 09:01
| 只看該作者
首先你的程式碼 Worksheets("2019 TRADING SOC NO.") 跟本不存在
On Error Resume Next...功能是讓程式不理會錯誤繼續跑下去, On Error Goto ..跑到指定行繼續跑- Sub crosscheck_new_item()
- Application.Calculation = xlCalculationManual
- Dim i As Long, d As Object
- Set d = CreateObject("scripting.dictionary")
- For Each s In Sheets
- d(s) = "" '創建字典收氣所有頁名
- Next
- If Not d.exists("2019 TRADING SOC NO.") Then GoTo error1 '如果頁名"2019 TRADING SOC NO."不存在跑到指定行繼續跑
- 'On Error GoTo error1
- Worksheets("2019 TRADING SOC NO.").Select
- For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
- 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)
- Worksheets("2019 TRADING SOC NO.").Range("M" & i).Value = "成本表"
- Next
- error1:
- If Not d.exists("2019 TRADING SOC NO.") Then GoTo error2
- 'On Error GoTo error2
- 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)
- Worksheets("2019 TRADING SOC NO.").Range("M" & i).Value = "期貨表"
- error2:
- If Not d.exists("2019 TRADING SOC NO.") Then GoTo 1000
- Worksheets("2019 TRADING SOC NO.").Range("L" & i).Value = ""
- 1000
- Application.Calculation = xlCalculationAutomatic
- End Sub
複製代碼 |
|
|
|
|
|
|
- 帖子
- 163
- 主題
- 45
- 精華
- 0
- 積分
- 246
- 點名
- 1
- 作業系統
- win7
- 軟體版本
- ie
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2015-7-8
- 最後登錄
- 2025-3-8
|
5#
發表於 2020-10-6 10:07
| 只看該作者
回復 4# ikboy
Ikboy
謝謝你的回覆, |
|
|
|
|
|
|
- 帖子
- 163
- 主題
- 45
- 精華
- 0
- 積分
- 246
- 點名
- 1
- 作業系統
- win7
- 軟體版本
- ie
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2015-7-8
- 最後登錄
- 2025-3-8
|
6#
發表於 2020-10-7 09:38
| 只看該作者
回復 5# mdr0465
軒云熊師兄,
請查閱,謝謝幫忙
謝謝 |
|
|
|
|
|
|
- 帖子
- 2839
- 主題
- 10
- 精華
- 0
- 積分
- 2895
- 點名
- 0
- 作業系統
- 〔略〕
- 軟體版本
- 〔略〕
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 〔略〕
- 註冊時間
- 2013-5-13
- 最後登錄
- 2025-2-15
|
7#
發表於 2020-10-9 10:06
| 只看該作者
檔案無法開, 大約抓一下
Sub TEST_A01()
Dim Sht As Worksheet, S1, S2, TC, M(2)
On Error Resume Next
Set Sht = Sheets("2019 TRADING SOC NO.")
If Sht Is Nothing Then MsgBox "工作表〔2019 TRADING SOC NO.〕不存在! ": Exit Sub
On Error GoTo 0
'------------------------------
For i = 2 To Sht.Range("A" & Rows.Count).End(xlUp).Row
S1 = "": S2 = "": TC = Sht.Range("E" & i).Value
On Error Resume Next
M(1) = Application.VLookup(TC, Sheets("成本 (2020.09.28)").Range("D:AL"), 35, 0)
M(2) = Application.VLookup(TC, Sheets("期貨總匯 (2020.09.16)").Range("A:G"), 7, 0)
On Error GoTo 0
For j = 1 To 2
If Not IsError(M(j)) Then S1 = M(j): S2 = Array("成本表", "期貨表")(j - 1): Exit For
Next j
Sht.Range("L" & i) = S1
Sht.Range("M" & i) = S2
Next i
End Sub
'=============================== |
|
|
|
|
|
|
- 帖子
- 254
- 主題
- 6
- 精華
- 0
- 積分
- 310
- 點名
- 0
- 作業系統
- W10
- 軟體版本
- Excel 2016
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 台灣
- 註冊時間
- 2019-6-16
- 最後登錄
- 2024-9-23
|
8#
發表於 2020-10-9 23:29
| 只看該作者
回復 6# mdr0465
不知道 是不是你要的 我有把準大寫的 放上去 如果不是 請告訴我問題出在哪裡 謝謝 我也是順便練習
javascript:; |
-
-
1009.rar
(506.45 KB)
|
|
|
|
|
|
- 帖子
- 254
- 主題
- 6
- 精華
- 0
- 積分
- 310
- 點名
- 0
- 作業系統
- W10
- 軟體版本
- Excel 2016
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 台灣
- 註冊時間
- 2019-6-16
- 最後登錄
- 2024-9-23
|
9#
發表於 2020-10-10 00:30
| 只看該作者
本帖最後由 軒云熊 於 2020-10-10 00:37 編輯
回復 6# mdr0465
我把位置改了一下 因為 結果跟準大的不一樣 所以改了一下 你再看看吧
javascript:; |
-
-
1009_01.rar
(505.63 KB)
|
|
|
|
|
|
- 帖子
- 163
- 主題
- 45
- 精華
- 0
- 積分
- 246
- 點名
- 1
- 作業系統
- win7
- 軟體版本
- ie
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2015-7-8
- 最後登錄
- 2025-3-8
|
10#
發表於 2020-10-10 10:42
| 只看該作者
回復 7# 准提部林
准提部林版主
這就是我想要的表達方式
萬分感謝你的幫忙
謝謝 |
|
|
|
|
|
|