Как пакетно удалить несколько ненужных или неиспользуемых файлов с помощью Excel VBA

Поделись сейчас:

Там может быть несколько нежелательных и неиспользуемых файлов, занимающих место на диске. Очистка этих файлов может оказаться сложной задачей. С помощью Excel вы можете легко найти такие неиспользуемые файлы и мгновенно удалить их, чтобы освободить место на диске.

Скачать сейчас

Если вы хотите сtart использовать программное обеспечение как можно скорее, то вы можете:

Загрузите программное обеспечение сейчас

В противном случае, если вы хотите сделать своими руками, вы можете прочитать содержимое ниже.

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

Удалите ненужные листы из книги и переименуйте Лист 1 как графический интерфейс и сохраните книгу как книгу с поддержкой макросов. Как показано на прикрепленном изображении, создайте две кнопки на листе и переименуйте кнопку 1 в «Обзор», а кнопку 2 — в «Удалить файлы». Вы можете либо объединить несколько столбцов, чтобы создать столбец большего размера для размещения пути к файлу, либо увеличить ширину одного столбца.Подготовьте графический интерфейс

Давайте сделаем его функциональным

Скопируйте сценарий в новый модуль в рабочей книге с поддержкой макросов. Убедитесь, что имя модуля должно быть Module1. В противном случае скрипт выдаст ошибку. К кнопке «Обзор» прикрепите скрипт «Scan_This_Folder», а к кнопке «Удалить файлы» — процедуру «Удалить_файлы».

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., которая является мировым лидером в области технологий восстановления данных, включая восстановить слово и программные продукты для восстановления Outlook. Для получения дополнительной информации посетите www.datanumen.com.

Поделись сейчас:

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