Как удалить файлы с помощью vba (с примерами)
Вы можете использовать оператор Kill в VBA для удаления определенного файла Excel в определенной папке.
Вот распространенный способ использования этого утверждения на практике:
SubDeleteFile ()
On Error Resume Next
Kill "C:\Users\Bob\Desktop\My_Data\soccer_data.xlsx"
On Error GoTo 0
End Sub
Этот конкретный макрос удаляет файл Excel с именем Soccer_data.xlsx , расположенный в следующей папке:
C:\Users\Боб\Рабочий стол\My_Data
Строка On Error Resume Next сообщает VBA, что если произошла ошибка и файл не найден, сообщение об ошибке отображаться не должно.
Затем мы используем On Error GoTo 0 , чтобы сбросить сообщения об ошибках к настройкам по умолчанию.
Если вы хотите, чтобы отображалось сообщение об ошибке, если файл не найден, просто удалите эти две строки из кода.
В следующем примере показано, как использовать этот синтаксис на практике.
Пример. Удаление файла с помощью VBA
Предположим, у нас есть следующая папка, содержащая три файла Excel:
Допустим, мы хотим использовать VBA для удаления файла с именем Soccer_data.xlsx .
Для этого мы можем создать следующий макрос:
SubDeleteFile ()
On Error Resume Next
Kill "C:\Users\Bob\Desktop\My_Data\soccer_data.xlsx"
On Error GoTo 0
End Sub
Запустив этот макрос и снова открыв папку, мы увидим, что файл с именем Soccer_data.xlsx был удален:
Все остальные файлы остались в папке нетронутыми.
Если вы хотите, чтобы сообщение об ошибке отображалось, если файл не существует, вы можете использовать следующий макрос:
SubDeleteFile ()
Kill "C:\Users\Bob\Desktop\My_Data\soccer_data.xlsx"
End Sub
Когда мы запускаем этот макрос, мы получаем следующее сообщение об ошибке:
Мы получаем это сообщение об ошибке, поскольку файл Soccer_data.xlsx уже удален и больше не существует в папке.
Примечание . Имейте в виду, что оператор Kill безвозвратно удаляет файл, а не просто отправляет его в корзину.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
VBA: как посчитать количество листов в книге
VBA: как извлечь данные из другой книги
VBA: как удалить лист, если имя содержит определенный текст