2013-07-12 50 views
0

自從我完成任何Excel/VBA技巧以來已經有一段時間了。我有一個包含超過1500個圖像文件的目錄和一個包含約900個文件名的電子表格列表(基本上它是每個圖像的一個目錄,曾經用於網站和目前使用的文件名的電子表格)。所以我想刪除電子表格中找不到的目錄中的任何文件。我有各種文件重命名宏的工具箱,但我不能完全想出適用於此場景的東西。在此先感謝...從目錄中刪除不在Excel電子表格中的文件

更新: 好吧,我找到了一個使用文件重命名宏的解決方案的一輪。

Sub Test() 
For N = 2 To Cells(Rows.Count, 1).End(xlUp).Row 
If Dir(Cells(N, 1)) <> "" Then 
    Name Cells(N, 1) As Cells(N, 2) 
End If 
Next N 
End Sub 

我在excel中創建了一個額外的列,並用數字序列填充它,然後運行宏。然後我去了目錄,並刪除了所有未重命名爲數字的文件名。然後,我交換了電子表格中的第1列和第2列,並再次運行宏以將它們重命名爲其原始文件名。我發佈了這個以防其他人發現這個宏有用的一天。但如果任何人有一個更直接的解決我的問題,我將不勝感激!

回答

0

我會

  • 使用Dir()目錄中的所有文件列出到Excel的第二列
  • 使用For Each檢查文件名的這個新列
  • 在對於每個小區內每個使用Excel的MATCH函數來檢查文件是否存在於現有列中
  • 使用Kill刪除文件
  • Delete這兩列完成時。

我可能會在第三列中存儲一個「DELETE」值,然後單獨執行刪除操作。 (或者,更有效,只需要複製該文件名的文件中刪除這個第三列)。

我不願意雖然提供代碼,直到你做了一個嘗試自己。

添加了實際上,我可能會在第三列使用COUNTIF(),並以此爲基礎來執行文件刪除;但總是有一些方法需要;)

+0

謝謝,我明白了。我剛剛用我成功使用的宏更新了我的問題。我想在我的宏中包含一個else子句,它會刪除剩餘的文件名,但無法完成它的工作。我會嘗試實現您的算法並保存以供將來使用。 – user2577007