Kuidas kustutada mitu soovimatut või kasutamata faili Excel VBA abil

Teie kettaruumi võib olla mitu soovimatut ja kasutamata faili. Nende failide puhastamine võib olla tohutu töö. Exceli abil saate sellised kasutamata failid hõlpsasti üles leida ja kettaruumi vabastamiseks koheselt kustutada.

Download Now

Kui soovite starKui soovite tarkvara võimalikult kiiresti kasutada, saate:

Laadige tarkvara kohe alla

Vastasel juhul, kui soovite ise teha, saate lugeda allpool olevat sisu.

Valmistame GUI ette

Eemaldage töövihikust soovimatud lehed ja nimetage leht 1 ümber GUI-ks ja salvestage töövihik makrotoega töövihikuna. Nagu on näidatud lisatud pildil, looge lehele kaks nuppu ja nimetage nupp 1 ümber "Sirvi" ja nupp 2 ümber "Kustuta failid". Saate liita mitu veergu, et luua failitee jaoks suurem veerg, või saate suurendada ühe veeru laiust.Valmistage GUI ette

Teeme selle funktsionaalseks

Kopeerige skript uude moodulisse oma makro lubatud töövihikus. Veenduge, et mooduli nimi oleks Moodul1. Vastasel juhul annab skript veateate. Kinnitage skript "Scan_This_Folder" nupule "Sirvi" ja protseduur "Delete_Files" peaks olema lisatud nupule "Kustuta failid".

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

Kuidas see toimib?

VBA koodKui kasutaja valib kausta, loeb skript kõik valitud kaustas olevad failid ja kuvab failinime koos viimati muudetud kuupäevaga. Kontrollige loendit, eemaldage read, kui soovite faili säilitada, ja seejärel klõpsake nuppu "Kustuta failid". Skript tuvastab nüüd viimati kasutatud rea ja kustutab failid, mis loevad lehelt failiteed.

Kohandage seda

Praeguse seisuga otsib skript valitud kaustas faile. Kui valitud kaustas on alamkaustu, ei saa skript seda kontrollida. Saate skripti kohandada, et skannida kõiki juurkausta alamkaustu ja luua ka uus veerg, et võrrelda failide "Viimati muudetud kuupäeva" praeguse kuupäevaga ja kuvada päevad. Seejärel saate skripti muuta, et failid päevade arvu alusel automaatselt kustutada. Kuigi skript kasutab Microsofti failide skriptimise tehnikat, on faili atribuudid kahjustatud xlsx faile ei saa alla laadida.

Autori sissejuhatus:

Nick Vipond on andmete taastamise ekspert DataNumen, Inc., mis on maailmas juhtiv andmete taastamise tehnoloogiate, sealhulgas sõna taastama ja Outlooki taastamise tarkvaratooted. Lisateabe saamiseks külastage www.datanumenCom.

Kommentaarid on suletud.