Как удалить файл с помощью vba в excel?
Чтобы удалить файл Excel из папки, вы можете использовать два разных метода. Первый метод — это оператор «Kill», который использует путь к файлу, который вы хотите удалить. Второй метод — это объект FileSystemObject, у которого есть связанный метод для удаления файла.
Чтобы использовать эти коды, перейдите в VBE (редактор кода) на вкладке разработчика.
Удалить файл с помощью VBA (функция Kill)
Функция Kill позволяет удалить один файл или несколько файлов, а также использовать подстановочные знаки для удаления нескольких файлов. Ниже приведен однострочный код, который удаляет файл из папки на рабочем столе.
Kill "C:UsersDellDesktopSample Datafile-one.xlsx"

Этот код покажет вам ошибку, если книга, которую вы указали для удаления, не существует.
Полезные ссылки: Запуск макроса – Средство записи макросов – Редактор Visual Basic – Персональный справочник по макросам
Удалить все файлы в папке с помощью VBA
А если вы хотите удалить все файлы в папке, вы можете использовать подстановочный знак.
Kill "C:UsersDellDesktopSample Data*.xl*"

Удалите файл с помощью FileSystemObject (Object)
Объект файловой системы позволяет вам получить доступ к файловой системе компьютера. Подробнее можно узнать здесь, а теперь давайте напишем код для удаления файла.
- Сначала вам необходимо объявить переменные, которые будут использоваться в коде, как Binder и FileSystemObject.
- После этого используйте функцию создания объекта, чтобы вернуть FileSystemObject, присвоив его переменной FSO.
- Затем назначьте путь переменной «myFile», чтобы перейти к файлу, который вы хотите удалить.
- В конце используйте метод «DeleteFile» (см. это), чтобы удалить файл.
Полный код
Sub vba_delete_file() Dim FSO Dim myFile As String Set FSO = CreateObject("Scripting.FileSystemObject") myFile = "C:UsersDellDesktopSample Datafile1.xlsx" FSO.DeleteFile myFile, True End Sub
Допустим, вам нужно написать код, который сможет проверить файл (существует он или нет), а затем удалить его. Вот код, который вам нужен.
Sub vba_delete_file() Dim FSO Dim myFile As String Set FSO = CreateObject("Scripting.FileSystemObject") myFile = "C:UsersDellDesktopSample Datafile1.xlsx" If FSO.FileExists(myFile) Then FSO.DeleteFile myFile, True MsgBox "Deleted" Else MsgBox "There's no workbook with this name." End If End Sub