Як пакетно видалити кілька небажаних або невикористаних файлів за допомогою програми Excel VBA

Поділитися зараз:

На вашому дисковому просторі може бути кілька небажаних та невикористаних файлів. Очищення цих файлів може бути величезним завданням. За допомогою Excel ви можете легко знайти такі невикористані файли та миттєво їх видалити, щоб звільнити місце на диску.

Завантажити зараз

Якщо ви хочете почати користуватися програмним забезпеченням якомога швидше, ви можете:

Завантажте програмне забезпечення зараз

В іншому випадку, якщо ви хочете зробити самостійно, ви можете прочитати вміст нижче.

Давайте підготуємо графічний інтерфейс

Видаліть з книги непотрібні аркуші та перейменуйте Аркуш 1 як графічний інтерфейс і збережіть книгу як книгу з підтримкою макросів. Як показано на вкладеному зображенні, створіть дві аркуші на аркуші та перейменуйте кнопку 1 як «Огляд» та перейменуйте кнопку 2 як «Видалити файли». Ви можете або об’єднати кілька стовпців, щоб створити більший стовпець для розміщення шляху до файлу, або можна збільшити ширину одного стовпця.Підготуйте графічний інтерфейс

Зробимо його функціональним

Скопіюйте сценарій до нового модуля у вашій книзі з підтримкою макросів. Переконайтесь, що ім'я модуля має бути Module1. В іншому випадку сценарій видасть помилку. Прикріпіть скрипт “Scan_This_Folder” до кнопки “Browse”, а процедура “Delete_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.

Поділитися зараз:

Коментарі закриті.