Cara Batch Menghapus Beberapa Fail yang Tidak Diingini atau Tidak Digunakan dengan Excel VBA

Kongsi Sekarang:

Mungkin terdapat beberapa fail yang tidak diingini dan tidak digunakan memakan ruang cakera anda. Membersihkan fail ini mungkin merupakan tugas besar. Dengan excel, anda dapat dengan mudah mencari fail yang tidak digunakan dan menghapusnya serta-merta untuk mengosongkan ruang cakera.

Muat Turun Sekarang

Sekiranya anda mahu starUntuk menggunakan perisian secepat mungkin, maka anda dapat:

Muat turun Perisian Sekarang

Jika tidak, jika anda mahu DIY, anda boleh membaca kandungannya di bawah.

Mari Siapkan GUI

Keluarkan helaian yang tidak diingini dari buku kerja dan namakan semula Lembaran 1 sebagai GUI dan simpan buku kerja sebagai buku kerja yang diaktifkan secara makro. Seperti yang ditunjukkan dalam gambar yang dilampirkan, buat dua butang pada lembaran dan ubah nama Button 1 sebagai "Browse" dan ganti nama Button 2 sebagai "Delete Files". Anda boleh menggabungkan beberapa lajur untuk membuat lajur yang lebih besar untuk menampung jalan fail atau anda dapat menambah lebar lajur tunggal.Siapkan GUI

Mari jadikan ia berfungsi

Salin skrip ke modul baru dalam buku kerja makro anda. Pastikan nama modul mestilah Modul1. Jika tidak, skrip akan menimbulkan ralat. Pasang skrip "Scan_This_Folder" ke butang "Browse" dan prosedur "Delete_Files" harus dilampirkan pada tombol "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

Bagaimana ia berfungsi?

Kod VBAApabila pengguna memilih folder, skrip membaca semua fail dalam folder yang dipilih dan memaparkan nama fail bersama dengan tarikh terakhir yang diubah. Sahkan senarai, hapus baris jika anda ingin menyimpan fail dan kemudian klik butang "Padam Fail". Skrip sekarang akan mengenal pasti baris terakhir yang digunakan dan menghapus fail yang membaca jalur fail dari helaian.

Ketatkannya

Setakat ini, skrip mengimbas fail dalam folder yang dipilih. Sekiranya terdapat subfolder dalam folder yang dipilih, skrip tidak dapat mengimbasnya. Anda boleh mengubah skrip untuk mengimbas semua subfolder dalam folder root dan juga membuat lajur baru untuk membandingkan fail "Tarikh Diubah Terakhir" dengan tarikh semasa dan memaparkan Hari. Anda kemudian boleh mengubah skrip untuk menghapus fail secara automatik berdasarkan jumlah hari. Walaupun skrip menggunakan teknik skrip fail Microsoft, sifat fail dari rosak xlsx fail tidak dapat diambil.

Pengenalan Pengarang:

Nick Vipond adalah pakar pemulihan data di DataNumen, Inc., yang merupakan pemimpin dunia dalam teknologi pemulihan data, termasuk memulihkan perkataan dan produk perisian pemulihan prospek. Untuk maklumat lebih lanjut, lawati www.datanumen.com.

Kongsi Sekarang:

Ruangan komen telah ditutup.