- 帖子
- 150
- 主題
- 40
- 精華
- 0
- 積分
- 215
- 點名
- 0
- 作業系統
- windows xp
- 軟體版本
- sp3
- 閱讀權限
- 20
- 註冊時間
- 2013-7-15
- 最後登錄
- 2025-5-26
|
本帖最後由 blue2263 於 2014-2-24 23:47 編輯
謝謝j大解答
我將程式碼改為,On Error Resume Next
然後加一IF判斷,判斷資料無更改,就跳開,測試
看起來是沒問題,錯誤訊息不會跑出,且跳出,
我是新手,不知我這樣改,會不會有什麼問題?
還請指教謝謝!!
程式碼如下
Sub 資料下載整合()
'資料網路下載->匯總Sheets
Dim Rng As Range, Ar(1 To 3)
Dim err
Set Rng = Sheets("代碼").[a2] '代碼起始位置在a2
Do While Rng <> "" '無代碼 中斷
Dim myErrNum As Long
With Sheets("原始表")
.Range("a6") = Rng
On Error Resume Next '發生錯誤陳述式之後的陳述式繼續執行
err = Sheets("原始表").Range("az7")
.Range("az7").QueryTable.Refresh BackgroundQuery:=False
On Error GoTo 0 '停止error resume
If err = Sheets("原始表").Range("az7") Then GoTo 103
With .Range("BB12:BB27")
Ar(1) = Application.Transpose(.Cells) '人數
Ar(2) = Application.Transpose(.Offset(, 1)) '股數
Ar(3) = Application.Transpose(.Offset(, 2)) '佔集保庫存數比例 (%)
End With
End With
With Sheets("匯總").Range("A1").End(xlDown).Offset(1) '選擇工作表,到最底行
.Cells(1) = Rng
.Cells(1, 2) = Rng.Offset(, 1)
.Cells(1, "C").Resize(, UBound(Ar(1))) = Ar(1)
.Cells(1, "S").Resize(, UBound(Ar(1))) = Ar(2)
.Cells(1, "AI").Resize(, UBound(Ar(1))) = Ar(3)
.Cells(1, "AX") = ""
'.Range("A1:aw1").Value = Sheets("原始表").Range("A6:aw6").Value
End With
103
Set Rng = Rng.Offset(1) '下一個代碼
Loop
End Sub |
|