Excel VBA ilə çoxlu arzuolunmaz və ya istifadə olunmamış faylları toplu şəkildə necə silmək olar

İndi paylaş:

Disk yerinizi yeyən bir neçə istənməyən və istifadə olunmayan fayl ola bilər. Bu faylları təmizləmək böyük bir iş ola bilər. Excel ilə siz belə istifadə olunmamış faylları asanlıqla tapa və diskdə yer boşaltmaq üçün onları dərhal silə bilərsiniz.

İndi Download

İstəsəniz start proqram təminatından mümkün qədər tez istifadə etmək üçün aşağıdakıları edə bilərsiniz:

Proqramı İndi Yükləyin

Əks halda, DIY etmək istəyirsinizsə, aşağıdakı məzmunu oxuya bilərsiniz.

GUI-ni hazırlayaq

İstənməyən vərəqləri iş kitabından çıxarın və Cədvəl 1-in adını GUI kimi dəyişdirin və iş kitabını makro aktiv iş kitabı kimi yadda saxlayın. Əlavə edilmiş şəkildə göstərildiyi kimi, vərəqdə iki düymə yaradın və Düymə 1-in adını “Gözdən keçirin” və Düymə 2-nin adını “Faylları Sil” olaraq dəyişdirin. Fayl yolunu yerləşdirmək üçün daha böyük bir sütun yaratmaq üçün birdən çox sütunu birləşdirə və ya bir sütunun enini artıra bilərsiniz.GUI hazırlayın

Gəlin onu funksional edək

Skripti makro ilə aktivləşdirilmiş iş kitabınızdakı yeni modula kopyalayın. Zəhmət olmasa modul adının Module1 olmasına əmin olun. Əks halda, skript xəta atacaq. “Scan_This_Folder” skriptini “Browse” düyməsinə əlavə edin və “Delete_Files” proseduru “Delete Files” düyməsinə əlavə edilməlidir.

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

Necə işləyir?

VBA koduİstifadəçi qovluğu seçdikdə, skript seçilmiş qovluqdakı bütün faylları oxuyur və fayl adını son dəyişdirilmiş tarixlə birlikdə göstərir. Siyahını yoxlayın, faylı saxlamaq istəyirsinizsə, sətirləri silin və sonra "Faylları Sil" düyməsini basın. İndi skript son istifadə olunan sıranı müəyyən edəcək və fayl yolunu vərəqdən oxuyan faylları siləcək.

Çəkin

Hazırda skript seçilmiş qovluqdakı faylları skan edir. Seçilmiş qovluqda alt qovluqlar varsa, skript onu skan edə bilməz. Siz kök qovluqdakı bütün alt qovluqları skan etmək üçün skripti düzəldə bilərsiniz, həmçinin faylların “Son Dəyişdirilmə tarixini” cari tarixlə müqayisə etmək və Günləri göstərmək üçün yeni sütun yarada bilərsiniz. Daha sonra günlərin sayına əsasən faylları avtomatik silmək üçün skripti düzəldə bilərsiniz. Skript Microsoft-un fayl skript texnikasından istifadə etsə də, fayl xüsusiyyətləri zədələnmiş xlsx faylları bərpa etmək mümkün deyil.

Müəllif Giriş:

Nik Vipond məlumatların bərpası üzrə mütəxəssisdir DataNumendaxil olmaqla məlumatların bərpası texnologiyaları üzrə dünya lideri olan , Inc sözü bərpa edin və Outlook bərpa proqram məhsulları. Ətraflı məlumat üçün ziyarət edin www.datanumen.com.

İndi paylaş:

Şərhlər bağlıdır.