【发布时间】:2016-05-28 18:53:16
【问题描述】:
我正在使用一个名为“All Dup”的应用程序来查找重复文件,通常通过 CRC 校验和进行匹配。运行扫描后,我会留下大约 10000 个重复文件的列表。然后我可以将结果导出为 csv 文件。我想做的是有一个宏来删除列中的所有指定文件夹,即我在列 A 中有所有文件夹。
我知道如何删除单个目录,但非常感谢有关“循环”功能或类似内容的一些帮助。
【问题讨论】:
我正在使用一个名为“All Dup”的应用程序来查找重复文件,通常通过 CRC 校验和进行匹配。运行扫描后,我会留下大约 10000 个重复文件的列表。然后我可以将结果导出为 csv 文件。我想做的是有一个宏来删除列中的所有指定文件夹,即我在列 A 中有所有文件夹。
我知道如何删除单个目录,但非常感谢有关“循环”功能或类似内容的一些帮助。
【问题讨论】:
此循环将从第 2 行沿 A 列向下移动到最后填充的行。首先检查每个单元格是否为非空白单元格,然后检查它是否作为带有Dir function 的文件夹存在。
With Worksheets("Sheet1")
For dr = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
If CBool(Len(.Cells(dr, "A").Value2)) Then
If CBool(Len(Dir(.Cells(dr, "A").Value2, vbdirectrory))) Then
Kill .Cells(dr, "A").Value2 & Chr(92) * Chr(42)
RmDir .Cells(dr, "A").Value2
End If
End If
Next dr
End With
如果两个测试都通过,则使用 Kill function 删除该文件夹。如果文件夹中包含文件,则应先将其删除。
【讨论】: