2016-10-17 155 views
0

我想將某些文件自動組織到特定的文件位置。文件類型都是.xls和.pdf,我只需要它們根據預先確定的列表排序到特定的文件夾中。自動組織文件到文件夾

例如我的名單是:

---------------------------------------- 
| Files  | Directory to move to | 
---------------------------------------- 
| ABC.xls | \Folder1\    | 
| ABC.pdf | \Folder1\    | 
| xyz.xls | \Folder2\    | 
| xyz.pdf | \Folder2\    | 
---------------------------------------- 

所以我有一個文件名和擴展名,它需要移動到文件夾。是否有可能在Excel中有這個列表,然後宏將搜索保存工作簿的相同路徑,找到該文件並將其移動到新路徑(並創建文件夾,如果它尚未創建)?

+0

是的,這是可能的。 –

+0

您或其他人請幫助我確定有助於實現此目的的代碼嗎? –

+0

您應該在Youtube上觀看完整的[Excel VBA簡介](https://www.youtube.com/playlist?list=PLNIs-AWhQzckr8Dgmgb3akx_gFMnpxTN5)系列。這是相關的:[Excel VBA簡介第22部分 - 文件和文件夾(FileSystemObjects)](https://www.youtube.com/watch?v=zHJPliWS9FQ&list=PLNIs-AWhQzckr8Dgmgb3akx_gFMnpxTN5&index=25)。如果你不能工作回來併發布一些代碼,我很樂意幫你調試它。 –

回答

0

假設原始文件路徑(例如「C:\ file1.xlsm」)在列A中並且目標文件路徑在列B中(例如「C:\ Data Files \ Newfile1.xlsm」),您可以簡單地使用FileCopy將文件複製並重命名爲新目標,然後Kill刪除原始文件。我認爲這比創建臨時bat文件要容易得多,然後運行它並刪除它。您可能需要使用MkDir來創建新目錄,不過您必須在Bat文件中執行類似的操作。

Sub MoveFiles() 
    Dim r As Range 

    With Worksheets("Sheet1") 
     For Each r In .Range("A1", .Range("A" & .Rows.Count).End(xlUp)) 
      FileCopy r.Value, r.Offset(0, 1).Value 
      Kill r.Value 
     Next 
    End With 
End Sub 
0

我已經創建了一個應用程序,Sorter,其以類似的方式,但無需Excel或宏的作品。應用程序Sorter通過將文件按其擴展名分組(即pdf)而分組,但是與docx分離。還有一個附加選項,可以將文檔分組在一起,但與視頻和音頻分開。您可以確定文件的目的地,並且它還具有遞歸功能,可以檢查子文件夾及其子文件夾,並將文件相對於其初始位置進行排序/分組。該應用程序知道一些文件類型,但可以添加更多。嘗試一下,看看它是否可以幫助。