Så här grupperar du radera flera oönskade eller oanvända filer med Excel VBA

Det kan finnas flera oönskade och oanvända filer som äter hårddiskutrymme. Rengöring av dessa filer kan vara en enorm uppgift. Med Excel kan du enkelt hitta sådana oanvända filer och ta bort dem direkt för att frigöra diskutrymme.

Hämta hem nu

Om du vill börja använda programvaran så snart som möjligt kan du:

Ladda ner programvaran nu

Annars kan du läsa innehållet nedan om du vill göra det själv.

Låt oss förbereda GUI

Ta bort oönskade ark från arbetsboken och byt namn på Ark 1 som GUI och spara arbetsboken som makroaktiverad arbetsbok. Som visas i den bifogade bilden skapar du två knappar på arket och byter namn på knapp 1 som "Bläddra" och byt namn på knapp 2 som "Ta bort filer". Du kan antingen slå samman flera kolumner för att skapa en större kolumn för att passa filvägen eller så kan du öka bredden på en enda kolumn.Förbered GUI

Låt oss göra det funktionellt

Kopiera skriptet till en ny modul i din makroaktiverade arbetsbok. Se till att modulnamnet ska vara Module1. Annars kommer skriptet att kasta ett fel. Bifoga skriptet “Scan_This_Folder” till knappen “Browse” och proceduren “Delete_Files” ska bifogas knappen “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

Hur fungerar det?

VBA-kodNär användaren väljer en mapp läser manus alla filer i den valda mappen och visar filnamnet tillsammans med det senast ändrade datumet. Verifiera listan, ta bort rader om du vill behålla filen och klicka sedan på knappen "Ta bort filer". Skriptet identifierar nu den senast använda raden och tar bort filer som läser filvägen från arket.

Justera det

Från och med nu söker skriptet efter filer i den valda mappen. Om det finns undermappar i den valda mappen kan skriptet inte skanna den. Du kan justera skriptet för att skanna alla undermappar i rotmappen och även skapa en ny kolumn för att jämföra "Senast modifierade datum" för filer med det aktuella datumet och visa dagarna. Du kan sedan justera skriptet för att radera filer automatiskt baserat på antalet dagar. Även om manuset använder Microsofts filskriptteknik, är filegenskaperna för skadad xlsx filer kan inte hämtas.

Författarintroduktion:

Nick Vipond är en dataåterställningsexpert i DataNumen, Inc., som är världsledande inom teknik för återställning av data, inklusive återställa ord och programvaruprodukter för återställningsprogram. För mer information besök www.datanumen.com.

Kommentarer är stängda.