Kā partijā izdzēst vairākus nevēlamus vai neizmantotus failus, izmantojot programmu Excel VBA

Kopīgot tūlīt:

Diskā var būt vairāki nevēlami un neizmantoti faili. Šo failu tīrīšana varētu būt milzīgs uzdevums. Izmantojot Excel, jūs varat viegli atrast šādus neizmantotos failus un tos uzreiz izdzēst, lai atbrīvotu vietu diskā.

Lejupielādēt tagad

Ja vēlaties sākt lietot programmatūru pēc iespējas ātrāk, varat:

Lejupielādējiet programmatūru tūlīt

Pretējā gadījumā, ja vēlaties DIY, varat izlasīt tālāk sniegto saturu.

Sagatavosim GUI

Noņemiet nevēlamās lapas no darbgrāmatas un pārdēvējiet 1. lapu par GUI un saglabājiet darbgrāmatu kā makro iespējotu darbgrāmatu. Kā parādīts pievienotajā attēlā, izveidojiet divas pogas uz lapas un 1. pogu pārdēvējiet par “Pārlūkot” un pārdēvējiet pogu 2 par “Dzēst failus”. Varat vai nu apvienot vairākas kolonnas, lai izveidotu lielāku kolonnu, lai pielāgotos faila ceļam, vai arī palielināt vienas kolonnas platumu.Sagatavojiet GUI

Padarīsim to funkcionālu

Kopējiet skriptu jaunā makro iespējotās darbgrāmatas modulī. Lūdzu, pārliecinieties, ka moduļa nosaukumam jābūt Module1. Pretējā gadījumā skripts radīs kļūdu. Pogai “Pārlūkot” pievienojiet skriptu “Scan_This_Folder”, un pogai “Dzēst failus” jāpievieno procedūra “Dzēst_failus”.

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

Kā tas darbojas?

VBA kodsKad lietotājs izvēlas mapi, skripts nolasa visus failus atlasītajā mapē un parāda faila nosaukumu kopā ar pēdējo modificēšanas datumu. Pārbaudiet sarakstu, noņemiet rindas, ja vēlaties saglabāt failu, un pēc tam noklikšķiniet uz pogas “Dzēst failus”. Tagad skripts identificēs pēdējo izmantoto rindu un izdzēsīs failus, kas lasa faila ceļu no lapas.

Pielāgojiet to

Sākotnēji skripts meklē failus atlasītajā mapē. Ja atlasītajā mapē ir apakšmapes, skripts to nevar skenēt. Varat pielabot skriptu, lai skenētu visas saknes mapes apakšmapes, kā arī izveidot jaunu kolonnu, lai salīdzinātu failu “Pēdējā modificēšanas datums” ar pašreizējo datumu un parādītu dienas. Pēc tam varat pielāgot skriptu, lai automātiski izdzēstu failus, pamatojoties uz dienu skaitu. Lai gan skripts izmanto Microsoft failu skriptu tehniku, faila īpašības bojāts xlsx failus nevar izgūt.

Autora ievads:

Niks Viponds ir datu atkopšanas eksperts DataNumen, Inc., kas ir pasaules līderis datu atkopšanas tehnoloģiju, tostarp atgūt vārdu un perspektīvas atkopšanas programmatūras produktus. Lai iegūtu vairāk informācijas, apmeklējiet vietni www.datanumen. Ar.

Kopīgot tūlīt:

Komentāri ir slēgti.