Kako grupno izbrisati više neželjenih ili neiskorištenih datoteka pomoću programa Excel VBA

Podijeli sada:

Možda postoji nekoliko neželjenih i neiskorištenih datoteka koje zauzimaju prostor na disku. Čišćenje ovih datoteka može biti ogroman zadatak. S excelom možete jednostavno pronaći takve neiskorištene datoteke i odmah ih izbrisati kako biste oslobodili prostor na disku.

Preuzmite sada

Ako želite start koristiti softver što je prije moguće, tada možete:

Preuzmite softver sada

Inače, ako želite DIY, možete pročitati sadržaj u nastavku.

Pripremimo GUI

Uklonite neželjene listove iz radne knjige i preimenujte list 1 u GUI i spremite radnu knjigu kao radnu knjigu s omogućenim makronaredbama. Kao što je prikazano na priloženoj slici, stvorite dva gumba na listu i preimenujte gumb 1 u "Pregledaj", a gumb 2 preimenujte u "Brisanje datoteka". Možete ili spojiti više stupaca kako biste stvorili veći stupac za smještaj putanje datoteke ili možete povećati širinu jednog stupca.Pripremite GUI

Učinimo ga funkcionalnim

Kopirajte skriptu u novi modul u radnoj knjizi s omogućenim makronaredbama. Provjerite je li naziv modula Module1. U suprotnom, skripta će izbaciti pogrešku. Priložite skriptu “Scan_This_Folder” gumbu “Browse” i proceduru “Delete_Files” treba priložiti gumbu “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

Kako radi?

VBA kodKada korisnik odabere mapu, skripta čita sve datoteke unutar odabrane mape i prikazuje naziv datoteke zajedno s datumom zadnje izmjene. Provjerite popis, uklonite retke ako želite zadržati datoteku i zatim kliknite gumb "Izbriši datoteke". Skripta će sada identificirati zadnji korišteni red i izbrisati datoteke čitajući put datoteke s lista.

Podesite ga

Od sada, skripta skenira datoteke unutar odabrane mape. Ako unutar odabrane mape postoje podmape, skripta je ne može skenirati. Možete podesiti skriptu da skenira sve podmape unutar korijenske mape i također stvoriti novi stupac za usporedbu "Datuma zadnje izmjene" datoteka s trenutnim datumom i prikaz dana. Zatim možete podesiti skriptu da automatski briše datoteke na temelju broja dana. Iako skripta koristi Microsoftovu tehniku ​​skriptiranja datoteka, svojstva datoteke oštećeno xlsx datoteke se ne mogu dohvatiti.

Uvod za autora:

Nick Vipond je stručnjak za oporavak podataka u DataNumen, Inc., koji je svjetski lider u tehnologijama za oporavak podataka, uključujući obnoviti riječ i softverski proizvodi za oporavak Outlooka. Za više informacija posjetite www.datanumen.com.

Podijeli sada:

Komentari su zatvoreni.