Több nem kívánt vagy nem használt fájl kötegelt törlése az Excel VBA segítségével

Oszd meg most:

Előfordulhat, hogy több nem kívánt és nem használt fájl felemészti a lemezterületet. A fájlok tisztítása hatalmas feladat lehet. Az Excel segítségével könnyedén megtalálhatja az ilyen nem használt fájlokat, és azonnal törölheti őket, hogy lemezterületet szabadítson fel.

Töltse le most

Ha a lehető leghamarabb el szeretné kezdeni a szoftver használatát, akkor a következőket teheti:

Töltse le a szoftvert most

Ellenkező esetben, ha barkácsolni szeretne, az alábbiakban olvashatja a tartalmat.

Készítsük el a GUI-t

Távolítsa el a nem kívánt lapokat a munkafüzetből, és nevezze át az 1. munkalapot grafikus felhasználói felületre, és mentse el a munkafüzetet makróképes munkafüzetként. A mellékelt képen látható módon hozzon létre két gombot a lapon, és nevezze át az 1-es gombot „Tallózás”-ra, a 2-es gombot pedig „Fájlok törlése”-re. Egyesíthet több oszlopot, hogy nagyobb oszlopot hozzon létre a fájl elérési útjához, vagy növelheti egyetlen oszlop szélességét.Készítse elő a GUI-t

Tegyük működőképessé

Másolja a szkriptet egy új modulba a makróképes munkafüzetben. Ügyeljen arra, hogy a modul neve Modul1 legyen. Ellenkező esetben a szkript hibát fog kiadni. Csatolja a „Scan_This_Folder” szkriptet a „Tallózás” gombra, a „Delete_Files” eljárást pedig a „Fájlok törlése” gombra.

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

Hogyan működik?

VBA kódAmikor a felhasználó kiválaszt egy mappát, a szkript beolvassa a kiválasztott mappában lévő összes fájlt, és megjeleníti a fájl nevét az utolsó módosítás dátumával együtt. Ellenőrizze a listát, távolítsa el a sorokat, ha meg szeretné tartani a fájlt, majd kattintson a „Fájlok törlése” gombra. A szkript most azonosítja az utoljára használt sort, és törli a fájl elérési útját beolvasó fájlokat a lapról.

Csípje meg

Jelenleg a szkript keresi a fájlokat a kiválasztott mappában. Ha vannak almappák a kiválasztott mappában, a szkript nem tudja megvizsgálni azt. A szkript módosításával átvizsgálhatja a gyökérmappán belüli összes almappát, és létrehozhat egy új oszlopot a fájlok „Utolsó módosítási dátuma” és az aktuális dátum összehasonlításához, és megjelenítheti a Napokat. Ezután módosíthatja a szkriptet, hogy automatikusan törölje a fájlokat a napok száma alapján. Bár a szkript a Microsoft fájlszkriptezési technikáját használja, a fájl tulajdonságait sérült xlsx fájlok nem tölthetők le.

Szerző Bevezetés:

Nick Vipond adat-helyreállítási szakértő DataNumen, Inc., amely világelső az adat-helyreállítási technológiák területén, beleértve szó visszaszerzése és az Outlook helyreállítási szoftvertermékei. További információért látogasson el www.datanumen.com.

Oszd meg most:

Hozzászólások lezárva.