Cách xóa hàng loạt nhiều tệp không mong muốn hoặc không sử dụng bằng Excel VBA

Chia sẻ ngay bây giờ:

Có thể có một số tệp không mong muốn và không được sử dụng đang ngốn dung lượng đĩa của bạn. Làm sạch các tập tin này có thể là một nhiệm vụ lớn. Với excel, bạn có thể dễ dàng tìm thấy các tệp không sử dụng như vậy và xóa chúng ngay lập tức để giải phóng dung lượng ổ đĩa.

Tải xuống Ngay

Nếu bạn muốn bắt đầu sử dụng phần mềm càng sớm càng tốt, bạn có thể:

Tải xuống phần mềm ngay bây giờ

Còn không, nếu bạn muốn DIY, bạn có thể đọc nội dung bên dưới.

Hãy chuẩn bị GUI

Xóa các trang tính không mong muốn khỏi sổ làm việc và đổi tên Trang tính 1 thành GUI và lưu sổ làm việc dưới dạng sổ làm việc đã bật macro. Như thể hiện trong hình ảnh đính kèm, hãy tạo hai nút trên trang tính và đổi tên Nút 1 thành “Duyệt” và đổi tên Nút 2 thành “Xóa tệp”. Bạn có thể hợp nhất nhiều cột để tạo một cột lớn hơn để chứa đường dẫn tệp hoặc bạn có thể tăng chiều rộng của một cột.Chuẩn bị GUI

Hãy làm cho nó hoạt động

Sao chép tập lệnh vào một mô-đun mới trong sổ làm việc đã bật macro của bạn. Vui lòng đảm bảo rằng tên mô-đun phải là Mô-đun1. Nếu không, tập lệnh sẽ đưa ra lỗi. Đính kèm tập lệnh “Scan_This_Folder” vào nút “Browse” và quy trình “Delete_Files” phải được đính kèm vào nút “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

Cách sử dụng?

Mã VBAKhi người dùng chọn một thư mục, tập lệnh sẽ đọc tất cả các tệp trong thư mục đã chọn và hiển thị tên tệp cùng với ngày sửa đổi lần cuối. Xác minh danh sách, xóa các hàng nếu bạn muốn giữ lại tệp rồi nhấp vào nút “Xóa tệp”. Bây giờ, tập lệnh sẽ xác định hàng được sử dụng cuối cùng và xóa các tệp đang đọc đường dẫn tệp khỏi trang tính.

tinh chỉnh nó

Hiện tại, tập lệnh sẽ quét các tệp trong thư mục đã chọn. Nếu có các thư mục con trong thư mục đã chọn, tập lệnh không thể quét nó. Bạn có thể điều chỉnh tập lệnh để quét tất cả các thư mục con trong thư mục gốc, đồng thời tạo một cột mới để so sánh “Ngày sửa đổi lần cuối” của các tệp với ngày hiện tại và hiển thị Ngày. Sau đó, bạn có thể điều chỉnh tập lệnh để tự động xóa các tệp dựa trên số ngày. Mặc dù tập lệnh sử dụng kỹ thuật tạo tập lệnh tệp của Microsoft, các thuộc tính tệp của hư hỏng xlsx tập tin không thể được lấy.

Giới thiệu tác giả:

Nick Vipond là một chuyên gia phục hồi dữ liệu trong DataNumen, Inc., công ty hàng đầu thế giới về công nghệ khôi phục dữ liệu, bao gồm phục hồi từ và các sản phẩm phần mềm khôi phục triển vọng. Để biết thêm thông tin, hãy truy cập www.datanumennăm.

Chia sẻ ngay bây giờ:

Được đóng lại.