Si të fshini skedarë të shumtë të padëshiruar ose të papërdorur në grup me Excel VBA

Mund të ketë disa skedarë të padëshiruar dhe të papërdorur që hanë hapësirën tuaj në disk. Pastrimi i këtyre skedarëve mund të jetë një detyrë e madhe. Me excel, ju mund të gjeni lehtësisht skedarë të tillë të papërdorur dhe t'i fshini ato menjëherë në hapësirën e lirë të diskut.

Shkarkojeni Tani

Nëse doni të filloni ta përdorni programin sa më shpejt të jetë e mundur, atëherë mund të:

Shkarkoni softuerin tani

Përndryshe, nëse dëshironi të bëni DIY, mund të lexoni përmbajtjen më poshtë.

Le të përgatisim GUI-në

Hiqni fletët e padëshiruara nga libri i punës dhe riemërtoni Fletën 1 si GUI dhe ruajeni librin e punës si libër pune me aktivizim makro. Siç tregohet në imazhin e bashkangjitur, krijoni dy butona në fletë dhe riemërtoni Butonin 1 si "Shfleto" dhe riemërto butonin 2 si "Fshi skedarët". Ju ose mund të bashkoni disa kolona për të krijuar një kolonë më të madhe për të akomoduar shtegun e skedarit ose mund të rrisni gjerësinë e një kolone të vetme.Përgatitni GUI-në

Le ta bëjmë atë funksional

Kopjojeni skriptin në një modul të ri në librin tuaj të punës me makro. Ju lutemi sigurohuni që emri i modulit të jetë Moduli1. Përndryshe, skenari do të shkaktojë një gabim. Bashkangjisni skriptin "Scan_This_Folder" në butonin "Browse" dhe procedura "Delete_Files" duhet t'i bashkëngjitet butonit "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

Si funksionon kjo gjë?

Kodi VBAKur përdoruesi zgjedh një dosje, skripti lexon të gjithë skedarët brenda dosjes së zgjedhur dhe shfaq emrin e skedarit së bashku me datën e fundit të modifikuar. Verifikoni listën, hiqni rreshtat nëse dëshironi të ruani skedarin dhe më pas klikoni butonin "Fshi skedarët". Skripti tani do të identifikojë rreshtin e fundit të përdorur dhe do të fshijë skedarët që lexojnë shtegun e skedarit nga fleta.

Shtype atë

Deri tani, skripti skanon për skedarë brenda dosjes së zgjedhur. Nëse ka nëndosje brenda dosjes së zgjedhur, skripti nuk mund ta skanojë atë. Ju mund ta ndryshoni skriptin për të skanuar të gjithë nëndosjet brenda dosjes rrënjësore dhe gjithashtu të krijoni një kolonë të re për të krahasuar "Data e fundit e modifikimit" të skedarëve me datën aktuale dhe për të shfaqur Ditët. Më pas mund ta rregulloni skriptin për të fshirë skedarët automatikisht bazuar në numrin e ditëve. Megjithëse skripti përdor teknikën e skriptimit të skedarëve të Microsoft-it, vetitë e skedarit të xlsx e dëmtuar skedarët nuk mund të merren.

Hyrje e autorit:

Nick Vipond është një ekspert i rikuperimit të të dhënave në DataNumen, Inc., e cila është lider botëror në teknologjitë e rikuperimit të të dhënave, duke përfshirë rikuperoj fjalën dhe produkte softuerike për rikuperimin e opinionit. Për më shumë informacion vizitoni www.datanumen.com.

Komentet janë të mbyllura.