Jak zbiorczo usunąć wiele niechcianych lub nieużywanych plików za pomocą programu Excel VBA

Podziel się teraz:

Może być kilka niechcianych i nieużywanych plików zajmujących miejsce na dysku. Czyszczenie tych plików może być ogromnym zadaniem. W programie Excel możesz łatwo znaleźć takie nieużywane pliki i natychmiast je usunąć, aby zwolnić miejsce na dysku.

Pobierz teraz

Jeśli chcesz starAby jak najszybciej korzystać z oprogramowania, możesz:

Pobierz oprogramowanie teraz

W przeciwnym razie, jeśli chcesz wykonać majsterkowanie, możesz przeczytać poniższą zawartość.

Przygotujmy GUI

Usuń niechciane arkusze ze skoroszytu i zmień nazwę Arkusza 1 na GUI i zapisz skoroszyt jako skoroszyt z włączoną obsługą makr. Jak pokazano na załączonym obrazku, utwórz dwa przyciski na arkuszu i zmień nazwę przycisku 1 na „Przeglądaj” i zmień nazwę przycisku 2 na „Usuń pliki”. Możesz scalić wiele kolumn, aby utworzyć większą kolumnę, aby pomieścić ścieżkę pliku, lub zwiększyć szerokość pojedynczej kolumny.Przygotuj GUI

Zróbmy to funkcjonalnie

Skopiuj skrypt do nowego modułu w skoroszycie z włączoną obsługą makr. Upewnij się, że nazwa modułu to Moduł1. W przeciwnym razie skrypt zgłosi błąd. Dołącz skrypt „Scan_This_Folder” do przycisku „Browse”, a procedura „Delete_Files” powinna być dołączona do przycisku „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

Jak to działa?

Kod VBAGdy użytkownik wybierze folder, skrypt odczytuje wszystkie pliki w wybranym folderze i wyświetla nazwę pliku wraz z datą ostatniej modyfikacji. Sprawdź listę, usuń wiersze, jeśli chcesz zachować plik, a następnie kliknij przycisk „Usuń pliki”. Skrypt zidentyfikuje teraz ostatnio używany wiersz i usunie pliki odczytując ścieżkę pliku z arkusza.

Popraw to

Obecnie skrypt skanuje w poszukiwaniu plików w wybranym folderze. Jeśli w wybranym folderze znajdują się podfoldery, skrypt nie może go przeskanować. Możesz dostosować skrypt, aby skanował wszystkie podfoldery w folderze głównym, a także utworzyć nową kolumnę, aby porównać „Data ostatniej modyfikacji” plików z aktualną datą i wyświetlić dni. Następnie możesz dostosować skrypt, aby automatycznie usuwał pliki na podstawie liczby dni. Chociaż skrypt wykorzystuje technikę skryptów plików firmy Microsoft, właściwości pliku uszkodzony xlsx plików nie można pobrać.

Wprowadzenie autora:

Nick Vipond jest ekspertem w dziedzinie odzyskiwania danych w DataNumen, Inc., która jest światowym liderem w technologiach odzyskiwania danych, w tym odzyskać słowo i oprogramowanie do odzyskiwania programu Outlook. po więcej informacji odwiedź www.datanumen.com.

Podziel się teraz:

Możliwość dodawania komentarzy nie jest dostępna.