Excel VBA-тэй олон хүсээгүй эсвэл ашиглаагүй файлуудыг хэрхэн багцаар устгах вэ

Одоо хуваалцах:

Таны дискний зайг хүсээгүй, ашиглаагүй хэд хэдэн файл байж болзошгүй. Эдгээр файлуудыг цэвэрлэх нь асар том ажил байж болох юм. Excel програмын тусламжтайгаар та ашиглагдаагүй ийм файлуудыг амархан олж, дискнийхээ зайг шууд устгах боломжтой.

Одоо Татах

Хэрэв та програмыг аль болох хурдан ашиглаж эхлэхийг хүсвэл дараах зүйлсийг хийж болно:

Програмыг одоо татаж аваарай

Үгүй бол, хэрэв та DIY хийхийг хүсвэл доорхи агуулгыг уншиж болно.

GUI-г бэлдэцгээе

Ажлын дэвтэрээс хүсээгүй хуудсыг устгаж, Хуудас 1-ийг GUI болгон өөрчилж, макро идэвхжүүлсэн ажлын ном болгон хадгалах. Хавсаргасан зураг дээр харуулсны дагуу хуудсан дээр хоёр товчлуур үүсгээд Товч 1-ийг "Browse" гэж сольж, товчлуур 2-ийг "Files устгах" болгон өөрчил. Та олон баганыг нэгтгэж файлын замыг тохируулахын тулд илүү том багана үүсгэх эсвэл нэг баганын өргөнийг нэмэгдүүлэх боломжтой.GUI-г бэлтгэ

Үүнийг функциональ болгоё

Скриптийг макро идэвхжүүлсэн ажлын дэвтэртээ шинэ модуль руу хуулж ав. Модулийн нэр Модуль1 байх ёстойг анхаарна уу. Үгүй бол скрипт алдаа гаргах болно. "Scan_This_Folder" скриптийг "Browse" товчлуур дээр хавсаргаад "Files устгах" товчлуур дээр "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

Энэ яаж ажилдаг вэ?

VBA кодХэрэглэгч хавтас сонгохдоо скрипт нь сонгосон фолдер доторх бүх файлыг уншиж, файлын нэрийг сүүлд өөрчлөгдсөн огнооны хамт харуулна. Жагсаалтыг баталгаажуулж, файлыг хадгалахыг хүсвэл мөрүүдийг арилгаад "Файлуудыг устгах" товчийг дарна уу. Скрипт нь одоо ашигласан хамгийн сүүлийн мөрийг тодорхойлж, файлын замыг уншсан файлуудыг хуудаснаас устгах болно.

Үүнийг өөрчлөх

Одоогийн байдлаар скрипт нь сонгосон фолдер доторх файлуудыг хайж байна. Хэрэв сонгосон фолдер дотор дэд хавтас байгаа бол скрипт үүнийг сканнердаж чадахгүй. Та эх фолдер доторх бүх дэд хавтасуудыг сканнердахдаа скриптийг өөрчилж, шинэ багана үүсгэж файлуудын "Сүүлийн өөрчлөгдсөн огноо" -г одоогийн огноотой харьцуулж, өдрүүдийг харуулах боломжтой. Та дараа нь өдрийн тоог үндэслэн файлуудыг автоматаар устгахын тулд скриптийг өөрчлөх боломжтой. Хэдийгээр скрипт нь Microsoft-ийн файл скриптийн техникийг ашигладаг боловч файлын шинж чанарууд гэмтсэн xlsx файлуудыг татаж авах боломжгүй.

Зохиогчийн танилцуулга:

Ник Випонд бол мэдээлэл сэргээх мэргэжилтэн юм DataNumen, Үүнд мэдээлэл сэргээх технологиор дэлхийд тэргүүлэгч, Inc. үгийг сэргээх болон хэтийн төлөвийг сэргээх програм хангамжийн бүтээгдэхүүнүүд. Дэлгэрэнгүй мэдээллийг авна уу WWW.datanumen.com.

Одоо хуваалцах:

Тайлбарууд нь хаалттай байна.