如何使用 Excel VBA 批量删除多个不需要或未使用的文件

立即分享:

可能有几个不需要和未使用的文件占用了您的磁盘空间。 清理这些文件可能是一项艰巨的任务。 使用 excel,您可以轻松找到此类未使用的文件并立即删除它们以释放磁盘空间。

立即下载

如果您想尽快开始使用该软件,那么您可以:

立即下载软件

否则,如果你想DIY,你可以阅读下面的内容。

让我们准备 GUI

从工作簿中删除不需要的工作表并将工作表 1 重命名为 GUI,并将工作簿另存为启用宏的工作簿。 如附图所示,在工作表上创建两个按钮,将按钮 1 重命名为“浏览”,将按钮 2 重命名为“删除文件”。 您可以合并多个列以创建更大的列以容纳文件路径,也可以增加单个列的宽度。准备图形用户界面

让我们让它发挥作用

将脚本复制到启用宏的工作簿中的新模块。 请确保模块名称应为 Module1。 否则,脚本将抛出错误。 将脚本“Scan_This_Folder”附加到“浏览”按钮,程序“Delete_Files”应附加到“删除文件”按钮。

Sub filefordelete()
    Dim v_var1 As Scripting.FileSystemObject
    Dim v_var2 As Scripting.Folder
    Dim v_var3 As Scripting.File
    scanthis = Range("B3").Text
    Set v_var1 = New Scripting.FileSystemObject
    Set v_var2 = v_var1.GetFolder(scanthis)
    i = 7
    For Each v_var3 In v_var2.Files
        Cells(i, 2) = v_var3
        Cells(i, 11) = v_var3.DateLastModified
        i = i + 1
    Next v_var3
    Set v_var1 = Nothing
End Sub

Sub Delete_Files()
    Dim lr As Long
    Dim r As Long
    lr = Range("B" & Rows.Count).End(xlUp).Row
    For r = 7 To lr
        Kill Range("B" & r).Value
    Next r
End Sub

Function scanthisfolder() As String
    Dim v1 As FileDialog
    Dim v2 As String
    Set v1 = Application.FileDialog(msoFileDialogFolderPicker)
    With v1
        .Title = "Folder to scan for files"
        .AllowMultiSelect = False
        If .Show <> -1 Then GoTo NextCode
        v2 = .SelectedItems(1)
    End With
NextCode:
    scanthisfolder = v2
    Set v1 = Nothing
End Function

Sub Scan_This_Folder()
    Range("B3").Value = scanthisfolder()
    Call Module1.filefordelete
End Sub

它是如何运作用的?

VBA代码当用户选择一个文件夹时,脚本会读取所选文件夹中的所有文件并显示文件名和最后修改日期。 验证列表,如果要保留文件则删除行,然后单击“删除文件”按钮。 该脚本现在将识别最后使用的行并删除从工作表中读取文件路径的文件。

调整它

截至目前,该脚本会扫描所选文件夹中的文件。 如果所选文件夹中有子文件夹,则脚本无法扫描它。 您可以调整脚本以扫描根文件夹中的所有子文件夹,还可以创建一个新列以将文件的“上次修改日期”与当前日期进行比较并显示天数。 然后,您可以调整脚本以根据天数自动删除文件。 尽管该脚本使用了 Microsoft 的文件脚本技术,但文件属性 损坏的 xlsx 无法检索文件。

作者简介:

Nick Vipond 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 恢复单词 和 outlook 恢复软件产品。 欲了解更多信息,请访问 datanumen.com.

立即分享:

评论被关闭。