Как удалить папки с помощью vba (с примерами)
Вы можете использовать следующие методы в VBA для удаления папок:
Способ 1: удалить все файлы в папке.
Sub DeleteFolderContents()
On Error Resume Next
Kill “ C:\Users\bobbi\Desktop\My_Data\*.* ”
On Error GoTo 0
End Sub
Этот конкретный макрос удалит все файлы в папке My_Data .
Способ 2: удалить всю папку
SubDeleteFolder ()
On Error Resume Next
'delete all files in folder
Kill “ C:\Users\bobbi\Desktop\My_Data\*.* ”
'delete empty folder
RmDir " C:\Users\bobbi\Desktop\My_Data\ "
On Error GoTo 0
End Sub
Этот конкретный макрос удалит всю папку My_Data , и она больше не будет существовать.
Строка On Error Resume Next сообщает VBA, что если произошла ошибка и папка не найдена, сообщение об ошибке отображаться не должно.
Затем мы используем On Error GoTo 0 , чтобы сбросить сообщения об ошибках к настройкам по умолчанию.
Если вы хотите, чтобы отображалось сообщение об ошибке, если папка не найдена, просто удалите эти две строки из кода.
В следующих примерах показано, как использовать каждый метод на практике со следующей папкой My_Data , которая содержит три файла Excel:
Пример 1. Удаление всех файлов в папке с помощью VBA
Допустим, мы хотим использовать VBA для удаления всех файлов из папки My_Data .
Для этого мы можем создать следующий макрос:
Sub DeleteFolderContents()
On Error Resume Next
Kill “ C:\Users\bobbi\Desktop\My_Data\*.* ”
On Error GoTo 0
End Sub
Как только мы запустим этот макрос и снова откроем папку, мы увидим, что все файлы были удалены:
Пример 2. Удаление всей папки с помощью VBA
Если вы хотите использовать VBA для удаления всей папки My_Data , чтобы она больше не существовала, вы можете создать следующий макрос:
SubDeleteFolder ()
On Error Resume Next
'delete all files in folder
Kill “ C:\Users\bobbi\Desktop\My_Data\*.* ”
'delete empty folder
RmDir " C:\Users\bobbi\Desktop\My_Data\ "
On Error GoTo 0
End Sub
Запустив этот макрос и открыв проводник, мы увидим, что папка My_Data больше не существует:
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
VBA: как посчитать количество листов в книге
VBA: как извлечь данные из другой книги
VBA: как удалить лист, если имя содержит определенный текст