返回列表 上一主題 發帖

[發問] 用EXCEL匯集各檔案

回復 1# li_hsien
樓主應該是想要將某些指定檔名的檔案移動到特定目錄內
假設檔名(不加副檔名)放置於工作表A欄
  1. Sub ex()
  2. Dim A As Range
  3. Set fds = CreateObject("Scripting.FileSystemObject")
  4. With Application.FileDialog(msoFileDialogFolderPicker)
  5. .Title = "選擇PDF原先資料夾"
  6. .Show
  7. ofd = .SelectedItems(1) & "\"
  8. End With
  9. With Application.FileDialog(msoFileDialogFolderPicker)
  10. .Title = "選擇PDF目的資料夾"
  11. .Show
  12. fd = .SelectedItems(1) & "\"
  13. End With
  14. With 工作表1 '輸入檔名的工作表
  15.   For Each A In .Range(.[A1], .[A1].End(xlDown))
  16.     fs = Dir(ofd & A & ".pdf")
  17.     If fs <> "" Then fds.movefile ofd & fs, fd & fs '移動檔案
  18.   Next
  19. End With
  20. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復  Hsieh

想請問一下板大

fd = .SelectedItems(1) & "\"
這個用途是???

For Each A In .Ran ...
li_hsien 發表於 2013-12-9 15:31

fd = .SelectedItems(1) & "\"
會得到對話方塊中所選擇的資料夾目錄路徑字串,因為此字串要在後續使用時會連接檔名,所以要加上反斜線
A是對工作表中的儲存格做迴圈,就是取得檔名
fs = Dir(ofd & A & ".pdf")'完整檔名若不存在fs將會得到空白字串,否則fs就會傳回檔案名稱(有加副檔名)
If fs <> "" Then fds.movefile ofd & fs, fd & fs '利用FileSystemObject的MoveFile方法移動檔案(相關用法請參考Excel的CreateObject說明)
學海無涯_不恥下問

TOP

        靜思自在 : 盡多少本份,就得多少本事。
返回列表 上一主題