Come eliminare in batch più file indesiderati o inutilizzati con Excel VBA

Condividi ora:

Potrebbero esserci diversi file indesiderati e inutilizzati che consumano spazio su disco. La pulizia di questi file potrebbe essere un compito enorme. Con Excel, puoi facilmente trovare tali file inutilizzati ed eliminarli istantaneamente per liberare spazio su disco.

Scarica Ora

Se vuoi start per utilizzare il software il prima possibile, è possibile:

Scarica subito il software

Altrimenti, se vuoi fare il fai-da-te, puoi leggere i contenuti di seguito.

Prepariamo la GUI

Rimuovi i fogli indesiderati dalla cartella di lavoro e rinomina il foglio 1 come GUI e salva la cartella di lavoro come cartella di lavoro abilitata per le macro. Come mostrato nell'immagine allegata, creare due pulsanti sul foglio e rinominare il pulsante 1 come "Sfoglia" e rinominare il pulsante 2 come "Elimina file". Puoi unire più colonne per creare una colonna più grande per contenere il percorso del file oppure puoi aumentare la larghezza di una singola colonna.Prepara la GUI

Rendiamolo funzionale

Copia lo script in un nuovo modulo nella tua cartella di lavoro abilitata per le macro. Assicurati che il nome del modulo sia Module1. In caso contrario, lo script genererà un errore. Allegare lo script “Scan_This_Folder” al pulsante “Browse” e la procedura “Delete_Files” dovrebbe essere allegata al pulsante “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

Cosa puoi fare con noi?

Codice VBAQuando l'utente seleziona una cartella, lo script legge tutti i file all'interno della cartella selezionata e visualizza il nome del file insieme alla data dell'ultima modifica. Verificare l'elenco, rimuovere le righe se si desidera conservare il file e quindi fare clic sul pulsante "Elimina file". Lo script identificherà ora l'ultima riga utilizzata ed eliminerà i file leggendo il percorso del file dal foglio.

Modificalo

A partire da ora, lo script esegue la scansione dei file all'interno della cartella selezionata. Se sono presenti sottocartelle all'interno della cartella selezionata, lo script non può scansionarla. Puoi modificare lo script per scansionare tutte le sottocartelle all'interno della cartella principale e anche creare una nuova colonna per confrontare la "Data dell'ultima modifica" dei file con la data corrente e visualizzare i giorni. È quindi possibile modificare lo script per eliminare automaticamente i file in base al conteggio dei giorni. Sebbene lo script utilizzi la tecnica di scripting dei file di Microsoft, le proprietà dei file di XLSX danneggiato i file non possono essere recuperati.

Introduzione dell'autore:

Nick Vipond è un esperto di recupero dati in DataNumen, Inc., che è il leader mondiale nelle tecnologie di recupero dati, tra cui recuperare la parola e prodotti software di ripristino di Outlook. Per maggiori informazioni visita www.datanumen.com.

Condividi ora:

I commenti sono chiusi.