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

Podijeli sada:

Može postojati nekoliko neželjenih i neiskorištenih datoteka koje zauzimaju prostor na vašem disku. Čišćenje ovih datoteka može biti ogroman zadatak. Uz excel, možete lako pronaći takve neiskorištene datoteke i odmah ih izbrisati kako biste oslobodili prostor na disku.

Preuzeti sada

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

Preuzmite softver odmah

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

Hajde da pripremimo GUI

Uklonite neželjene listove iz radne sveske i preimenujte list 1 u GUI i sačuvajte radnu svesku kao radnu svesku sa omogućenim makroima. Kao što je prikazano na priloženoj slici, kreirajte dva dugmeta na listu i preimenujte dugme 1 u „Pretraži“ i preimenujte dugme 2 u „Izbriši datoteke“. Možete ili spojiti više kolona kako biste stvorili veći stupac koji će prilagoditi putanju datoteke ili možete povećati širinu jedne kolone.Pripremite GUI

Učinimo ga funkcionalnim

Kopirajte skriptu u novi modul u radnoj svesci sa omogućenim makroima. Uvjerite se da ime modula treba biti Modul1. U suprotnom, skripta će izbaciti grešku. Priložite skriptu “Scan_This_Folder” na dugme “Browse”, a proceduru “Delete_Files” treba priložiti dugmetu “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 funkcioniše?

VBA kodKada korisnik odabere folder, skripta čita sve datoteke unutar odabranog foldera i prikazuje naziv datoteke zajedno sa datumom posljednje izmjene. Provjerite listu, uklonite redove ako želite zadržati datoteku, a zatim kliknite na dugme „Izbriši datoteke“. Skripta će sada identificirati posljednji korišteni red i izbrisati datoteke koje čitaju putanju datoteke sa lista.

Podesite ga

Od sada, skripta skenira datoteke unutar odabranog foldera. Ako unutar odabranog foldera postoje podfolderi, skripta ga ne može skenirati. Možete podesiti skriptu da skenira sve poddirektorijume unutar osnovnog foldera i kreirati novu kolonu da biste uporedili „Datum poslednje izmene“ datoteka sa trenutnim datumom i prikazali dane. Zatim možete podesiti skriptu da automatski briše datoteke na osnovu broja dana. Iako skripta koristi Microsoftovu tehniku ​​skriptiranja datoteka, svojstva datoteke su oštećen xlsx fajlovi se ne mogu preuzeti.

Uvod za autora:

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

Podijeli sada:

Komentari su zatvoreni.