如何使用Excel VBA批量刪除多個不需要的或不使用的文件

立即分享:

可能有幾個不需要的文件和未使用的文件佔用了磁盤空間。 清理這些文件可能是一項艱鉅的任務。 使用excel,您可以輕鬆找到此類未使用的文件,並立即將其刪除以釋放磁盤空間。

立即下載

如果您想盡快開始使用該軟體,那麼您可以:

立即下載軟件

否則,如果要DIY,可以閱讀以下內容。

讓我們準備GUI

從工作簿中刪除不需要的工作表,並將工作表1重命名為GUI,然後將工作簿另存為啟用了宏的工作簿。 如下圖所示,在工作表上創建兩個按鈕,並將按鈕1重命名為“瀏覽”,將按鈕2重命名為“刪除文件”。 您可以合併多個列以創建更大的列以容納文件路徑,也可以增加單個列的寬度。準備GUI

讓它發揮作用

將腳本複製到啟用了宏的工作簿中的新模塊。 請確保模塊名稱應為Module1。 否則,腳本將引發錯誤。 將腳本“ Scan_This_Folder”附加到“瀏覽”按鈕,並將過程“ Delete_Files”附加到按鈕“ 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.

立即分享:

評論被關閉。