0

自从我完成任何 Excel/VBA 技巧以来已经有一段时间了。我有一个包含 1500 多个图像文件的目录和一个包含大约 900 个文件名的电子表格列表(基本上它是网站上曾经使用过的每个图像的目录和当前使用的文件名的电子表格)。所以我想删除目录中没有在电子表格中找到的所有文件。我有一个包含各种文件重命名宏的工具包,但我想不出适用于这种情况的东西。提前致谢...

更新:好的,我找到了一个关于使用文件重命名宏的解决方案。

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 列,并再次运行宏以将它们重命名为原始文件名。我发布了这个,以防其他人有一天发现这个宏很有用。但是,如果有人对我的问题有更直接的解决方案,我将不胜感激!

4

1 回答 1

0

我会

  • 用于Dir()将目录中的所有文件列出到 Excel 的第二列中
  • 用于For Each检查此新文件名列中的每个单元格
  • 在 For..Each 中使用 Excel 的MATCH函数来检查文件是否存在于现有列中
  • 用于Kill删除文件
  • Delete完成后这两列。

我可能会在第三列中存储一个“DELETE”值,然后分别进行删除。(或者,更有用的是,只需将要删除的文件名复制到第三列。)

在您自己尝试之前,我不愿意提供代码。

补充实际上,我可能会在第三列中使用 COUNTIF() 并以此为基础来执行文件删除;但总是有很多方法可以采取;)

于 2013-07-12T16:47:48.040 回答