Excel VBA yordamida bir nechta kiruvchi yoki foydalanilmagan fayllarni qanday qilib ommaviy o'chirish mumkin

Hozir ulashing:

Diskdagi bo'sh joyni egallagan bir nechta kiruvchi va foydalanilmagan fayllar bo'lishi mumkin. Ushbu fayllarni tozalash juda katta vazifa bo'lishi mumkin. Excel yordamida siz bunday foydalanilmagan fayllarni osongina topishingiz va diskda bo'sh joyni bo'shatish uchun ularni bir zumda o'chirishingiz mumkin.

Hozir yuklab olmoq

Agar siz dasturiy ta'minotdan iloji boricha tezroq foydalanishni boshlamoqchi bo'lsangiz, unda quyidagilarni qilishingiz mumkin:

Dasturiy ta'minotni hozir yuklab oling

Aks holda, agar siz DIY qilishni istasangiz, quyidagi tarkibni o'qishingiz mumkin.

GUI ni tayyorlaylik

Ish kitobidan keraksiz varaqlarni olib tashlang va 1-varaq nomini GUI sifatida o'zgartiring va ish kitobini so'l bilan ishlaydigan ish kitobi sifatida saqlang. Ilova qilingan rasmda ko'rsatilganidek, varaqda ikkita tugma yarating va 1-tugmaning nomini "Browse" deb o'zgartiring va 2-tugmaning nomini "Fayllarni o'chirish" deb o'zgartiring. Fayl yo'lini joylashtirish uchun kattaroq ustun yaratish uchun bir nechta ustunlarni birlashtirishingiz yoki bitta ustunning kengligini oshirishingiz mumkin.GUI-ni tayyorlang

Keling, uni funksional holga keltiraylik

Skriptni so'l bilan ishlaydigan ish kitobingizdagi yangi modulga nusxalang. Iltimos, modul nomi Module1 bo'lishi kerakligiga ishonch hosil qiling. Aks holda, skript xatoga yo'l qo'yadi. “Scan_This_Folder” skriptini “Browse” tugmasiga va “Delete_Files” protsedurasi “Fayllarni o‘chirish” tugmasiga biriktirilishi kerak.

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

Bu qanday ishlaydi?

VBA kodiFoydalanuvchi papkani tanlaganida, skript tanlangan papkadagi barcha fayllarni o'qiydi va fayl nomini oxirgi o'zgartirilgan sana bilan birga ko'rsatadi. Ro'yxatni tekshiring, agar faylni saqlamoqchi bo'lsangiz, qatorlarni olib tashlang va "Fayllarni o'chirish" tugmasini bosing. Endi skript oxirgi ishlatilgan qatorni aniqlaydi va varaqdan fayl yo'lini o'qiydigan fayllarni o'chiradi.

Buzing

Hozircha skript tanlangan jilddagi fayllarni skanerlaydi. Agar tanlangan jild ichida pastki papkalar bo'lsa, skript uni skanerlay olmaydi. Siz ildiz papkasidagi barcha pastki papkalarni skanerlash uchun skriptni o'zgartirishingiz mumkin, shuningdek, fayllarning "So'nggi o'zgartirilgan sanasini" joriy sana bilan solishtirish va kunlarni ko'rsatish uchun yangi ustun yaratishingiz mumkin. Keyin kunlar soniga qarab fayllarni avtomatik ravishda o'chirish uchun skriptni sozlashingiz mumkin. Skript Microsoft-ning fayl skriptlash texnikasidan foydalansa-da, faylning xususiyatlari shikastlangan xlsx fayllarni qaytarib bo'lmaydi.

Muallif kirish:

Nik Vipond - ma'lumotlarni qayta tiklash bo'yicha mutaxassis DataNumenMa'lumotlarni qayta tiklash texnologiyalari bo'yicha jahon yetakchisi bo'lgan , Inc so'zni tiklash va istiqbolni tiklash dasturiy mahsulotlar. Qo'shimcha ma'lumot olish uchun tashrif buyuring www.datanumen.com.

Hozir ulashing:

Comments are closed.