วิธีการแบทช์ลบไฟล์ที่ไม่ต้องการหรือไม่ได้ใช้หลายไฟล์ด้วย Excel VBA

แบ่งปันเลย:

อาจมีไฟล์ที่ไม่ต้องการและไม่ได้ใช้หลายไฟล์ที่กินเนื้อที่ดิสก์ของคุณ การทำความสะอาดไฟล์เหล่านี้อาจเป็นงานใหญ่ ด้วย excel คุณสามารถค้นหาไฟล์ที่ไม่ได้ใช้และลบออกทันทีเพื่อเพิ่มพื้นที่ว่างในดิสก์

ดาวน์โหลดตอนนี้

ถ้าคุณต้องการ starเพื่อใช้ซอฟต์แวร์โดยเร็วที่สุดจากนั้นคุณสามารถ:

ดาวน์โหลดซอฟต์แวร์ทันที

มิฉะนั้นหากคุณต้องการ DIY คุณสามารถอ่านเนื้อหาด้านล่าง

เตรียม GUI กันเถอะ

ลบแผ่นงานที่ไม่ต้องการออกจากสมุดงานและเปลี่ยนชื่อแผ่นงาน 1 เป็น GUI และบันทึกสมุดงานเป็นสมุดงานที่เปิดใช้งานแมโคร ดังที่แสดงในภาพที่แนบมาให้สร้างปุ่มสองปุ่มบนแผ่นงานและเปลี่ยนชื่อปุ่ม 1 เป็น“ เรียกดู” และเปลี่ยนชื่อปุ่ม 2 เป็น“ ลบไฟล์” คุณสามารถรวมหลายคอลัมน์เพื่อสร้างคอลัมน์ที่ใหญ่ขึ้นเพื่อรองรับเส้นทางไฟล์หรือคุณสามารถเพิ่มความกว้างของคอลัมน์เดียวเตรียม GUI

มาทำให้มันใช้งานได้

คัดลอกสคริปต์ไปยังโมดูลใหม่ในสมุดงานที่เปิดใช้งานแมโครของคุณ โปรดตรวจสอบว่าชื่อโมดูลควรเป็น Module1 มิฉะนั้นสคริปต์จะแสดงข้อผิดพลาด แนบสคริปต์“ Scan_This_Folder” เข้ากับปุ่ม“ เรียกดู” และควรแนบขั้นตอน“ 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 ที่เสียหาย ไม่สามารถดึงไฟล์ได้

บทนำผู้เขียน:

Nick Vipond เป็นผู้เชี่ยวชาญด้านการกู้คืนข้อมูลใน DataNumen, Inc. ซึ่งเป็นผู้นำระดับโลกด้านเทคโนโลยีการกู้คืนข้อมูล ได้แก่ กู้คืนคำ และผลิตภัณฑ์ซอฟต์แวร์กู้คืน Outlook ดูข้อมูลเพิ่มเติมได้ที่ wwwdatanumenด้วย..

แบ่งปันเลย:

ความเห็นถูกปิด