返回列表 上一主題 發帖

[發問] 將多個EXCEL 匯到一個EXCEL的問題

[發問] 將多個EXCEL 匯到一個EXCEL的問題

本帖最後由 yanto913 於 2012-4-14 10:30 編輯

請見附檔
將檔案放到C:\槽

此資料夾內有五個EXCEL分別是1.xls~5.xls
執行all.xls匯入1.xls~5.xls
現況是沒問題

但是我想請教的是如果中間有缺檔會產生錯誤(假設缺1.xls, 3.xls, 4.xls)
查閱網站有說要用on error goto
但是錯誤好像只能跳過一次,第二次還是會出現錯誤

另外轉出時也會出現問題
因為我不會判斷陣列為從第二個sheet(2)~最後一個匯出

懇請各位先進賜教   謝謝

問題舉例1.rar (17.86 KB)

YOYO

回復 1# yanto913

可否把 on error goto 改成 on error resume next 試試看?

TOP

回復 2# LeafYeung


抱歉,我試不出來耶!!
on error resume next
應該放在哪裡呢??
YOYO

TOP

回復 3# yanto913

我不能下載你的 file~~ 這裡有個 On Error 用法 的例子...你可以看看.....(ref. " followme excel 2007 vba")

Sub On_Error_用法1()
    Dim StBase As String, myInc As Integer
    Dim mySheet As Worksheet
   
    Set mySheet = Worksheets.Add
    StBase = "測試"
    myInc = 1
'   On Error Resume Next
    mySheet.Name = StBase & myInc
    Do Until Err.Number = 0
        Err.Clear
        myInc = myInc + 1
        mySheet.Name = StBase & myInc
    Loop
End Sub

TOP

回復 4# LeafYeung


    on error resume next 剛剛用了一下,可以用
但用了變成全部忽略
但我是比較想要如果錯誤跳到某行執行所以才想用on error go to
但是變成執行第二次錯誤就無法跳過錯誤了
YOYO

TOP

回復 5# yanto913


可否 email 給我看看... leaf_yeung@yahoo.com.hk   

謝謝...

TOP

回復 1# yanto913
  1. Sub test()
  2. Dim sht()
  3. Application.ScreenUpdating = False '關閉螢幕更新
  4. fd = ThisWorkbook.Path & "\" '檔案所在目錄
  5. fs = fd & "*.xls"
  6. fb = Dir(fs)
  7. Do Until fb = "" '所有xls檔案迴圈
  8. If fb <> ThisWorkbook.Name Then
  9. With Workbooks.Open(fd & fb)
  10.    Set sh = .Sheets(1)
  11.    ReDim Preserve sht(s) '記住所有工作表名稱
  12.    sht(s) = sh.Name
  13.    s = s + 1
  14.    sh.Copy after:=ThisWorkbook.Sheets(1) '複製工作表
  15.    .Close 0 '關閉檔案
  16. End With
  17. End If
  18. fb = Dir
  19. Loop
  20. Sheets(sht).Move '移動所有複製的工作表到新檔案
  21. Application.ScreenUpdating = True '恢復螢幕更新
  22. End Su
複製代碼
學海無涯_不恥下問

TOP

回復 7# Hsieh




    謝謝Hsieh 版主

請問如果我只想要把sheets("all")中A1~A5為檔名去搜尋xls
而且搜尋到的在sheets("all")中B1~B5標示"OK"該如何做呢?
YOYO

TOP

回復 8# yanto913


    看你A1:A5的檔名樣式為何?是否包含資料夾目錄或副檔名
不同資料有不同處理方式,以樓上的程式碼去加判斷式應該不是很難的
學海無涯_不恥下問

TOP

回復 9# Hsieh

Hsieh 版主
請問以下程序在執行第二次 on error goto 時 為何會出現 error 呢??

Sub test1()
For i = 1 To 10
On Error GoTo AAA '錯誤時跳至
B = i / 0 '製造錯誤
AAA:
On Error GoTo 0
Next
End Sub

當 i=1時就可行,但當i=2時就 error
煩請教導~~謝謝

TOP

        靜思自在 : 【時日莫空過】一個人在世間做了多少事,就等於壽命有多長。因此必須與時間競爭,切莫使時日空過。
返回列表 上一主題