返回列表 上一主題 發帖

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

回復 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

回復 8# yanto913


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

TOP

回復 10# LeafYeung
On Error 陳述式
一個「啟動的」錯誤處理程式是由 On Error 陳述式所打開的;一個「動作中」的錯誤處理程式是一個已啟動的錯誤處理程式正在處理錯誤。如果錯誤處理程式在動作中又發生了錯誤,(在錯誤發生和 Resume,Exit Sub,Exit Function,或 Exit Property 陳述式之間),那麼現在此程序的錯誤處理程式將無法再處理此錯誤。
所以,要處理可能產生多次錯誤的程序,必須是Resume Next,而要繼續處理就必須清除當前錯誤物件
執行下面程序當可了解錯誤後處理狀態
  1. Sub test1()
  2. For i = 1 To 10
  3. k = Int((2 - 0 + 1) * Rnd + 0)
  4. On Error GoTo AAA '錯誤時跳至
  5. B = i / k '製造錯誤
  6. Next
  7. AAA:
  8. MsgBox "被除數等於=" & i & "除數等於=" & k
  9. Err.Clear
  10. Resume Next
  11. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 13# yanto913

程式設計應盡量避免錯誤產生才是正道
  1. Sub test()
  2. Dim sht()
  3. Application.ScreenUpdating = False '關閉螢幕更新
  4. fd = ThisWorkbook.Path & "\" '檔案所在目錄
  5. For Each a In [A1:A5]
  6. fs = fd & a & ".xls"
  7. fb = Dir(fs)
  8. If fb <> "" Then
  9. a.Offset(, 1) = "OK"
  10. With Workbooks.Open(fd & fb)
  11.    Set sh = .Sheets(1)
  12.    ReDim Preserve sht(s) '記住所有工作表名稱
  13.    sht(s) = sh.Name
  14.    s = s + 1
  15.    sh.Copy after:=ThisWorkbook.Sheets(1) '複製工作表
  16.    .Close 0 '關閉檔案
  17. End With
  18. End If
  19. Next
  20. Sheets(sht).Move '移動所有複製的工作表到新檔案
  21. Application.ScreenUpdating = True '恢復螢幕更新
  22. End Sub
複製代碼
學海無涯_不恥下問

TOP

        靜思自在 : 【時間如鑽石】時間對一個有智慧的人而言,就如鑽石般珍貴;但對愚人來說,卻像是一把泥土,一點價值也沒有。
返回列表 上一主題