Cum să ștergeți în lot mai multe fișiere nedorite sau neutilizate cu Excel VBA

Este posibil să existe mai multe fișiere nedorite și neutilizate care vă consumă spațiul pe disc. Curățarea acestor fișiere ar putea fi o sarcină uriașă. Cu excel, puteți găsi cu ușurință astfel de fișiere neutilizate și le puteți șterge instantaneu pentru a elibera spațiu pe disc.

Descarcă acum

Dacă vrei să starPentru a utiliza software-ul cât mai curând posibil, atunci puteți:

Descărcați software-ul acum

În rest, dacă vrei să faci DIY, poți citi conținutul de mai jos.

Să pregătim GUI

Eliminați foile nedorite din registrul de lucru și redenumiți Foaia 1 ca GUI și salvați registrul de lucru ca registru de lucru activat pentru macro-uri. După cum se arată în imaginea atașată, creați două butoane pe foaie și redenumiți butonul 1 ca „Răsfoiți” și redenumiți butonul 2 ca „Ștergeți fișierele”. Puteți fie îmbina mai multe coloane pentru a crea o coloană mai mare care să găzduiască calea fișierului, fie puteți crește lățimea unei singure coloane.Pregătiți GUI

Să-l facem funcțional

Copiați scriptul într-un modul nou din registrul de lucru cu macrocomenzi. Asigurați-vă că numele modulului trebuie să fie Module1. În caz contrar, scriptul va genera o eroare. Atașați scriptul „Scan_This_Folder” la butonul „Browse” și procedura „Delete_Files” ar trebui să fie atașată la butonul „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

Cum functioneaza?

Cod VBACând utilizatorul selectează un folder, scriptul citește toate fișierele din folderul selectat și afișează numele fișierului împreună cu data ultimei modificări. Verificați lista, eliminați rândurile dacă doriți să păstrați fișierul și apoi faceți clic pe butonul „Șterge fișierele”. Scriptul va identifica acum ultimul rând folosit și va șterge fișierele care citesc calea fișierului din foaie.

Ajustați-l

Începând de acum, scriptul scanează fișierele din folderul selectat. Dacă există subdosare în folderul selectat, scriptul nu îl poate scana. Puteți modifica scriptul pentru a scana toate subfolderele din folderul rădăcină și, de asemenea, puteți crea o nouă coloană pentru a compara „Data ultimei modificări” a fișierelor cu data curentă și pentru a afișa zilele. Apoi puteți modifica scriptul pentru a șterge automat fișierele în funcție de numărul de zile. Deși scriptul folosește tehnica de scriptare a fișierelor Microsoft, proprietățile fișierului xlsx deteriorat fișierele nu pot fi preluate.

Introducerea autorului:

Nick Vipond este un expert în recuperarea datelor DataNumen, Inc., care este lider mondial în tehnologiile de recuperare a datelor, inclusiv recupera cuvântul și produse software de recuperare Outlook. Pentru mai multe informații vizitați www.datanumen.com.

Comentariile sunt închise.