Vba excel удалить файл

Обновлено: 04.07.2024

Одной из важнейших составляющих любого языка программирования является способность считывать и записывать информацию из файлов. Стандартно это называется функциями низкого уровня (Low Level) и в полном объеме представлено в VBA. Кстати, именно эта особенность и является основой опасности макросов.

С другой стороны, в свете изучаемого курса, нельзя не отметить, что обсуждаемые возможности относятся далеко не к начальному уровню. Без них не удастся обойтись при автоматизации взаимодействия со сложной информацией из разнородных источников.

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

P.S.! Завершение переработки материалов разработчика приводит к совершенно неутешительным выводам. Материала по этой теме всегда было очень мало, да и качество оставляло желать лучшего. Теперь же он стал «обструганным» под непонятный стандарт, разорванным в несвязанное словоизвержение и напичканным примерами, половина из которых только запутывает ситуацию, а вторая — ничего не иллюстрирует. Ну, или почти так.

Работа с файлами, дисками и папками, путь

Логика изложения основана на том, что можно сделать с существующими объектами, а уже потом — как создать новый. Поскольку многие команды распространяются не только на работу с каталогами, но и на файлы, полное изложение приводится именно здесь.

Все, перечисленное здесь, не имеет прямого отношения к низкоуровневым функциям, но без этой информации работать нельзя в принципе.

Первым является вопрос о том, где мы сейчас находимся. Совсем неочевиден не только ответ, но и то, что сам вопрос будет своевременно задан. Данный тезис становится все более актуальным с каждым годом и мне не хотелось бы, чтобы мои ученики бились об него лбом.

CurDir

Определение текущей папки.

Из синтаксиса можно понять (или нет) достаточно многое.

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

Перечисленное не дает однозначного ответа на возникающие вопросы, но является основой для таковых. Частичные решения есть в разделе Примеры.

ChDrive

Инструкция для смены текущего диска (ChDrive) работает довольно примитивно. Так, вариант

определит текущим диском диск «D:». Из примера видно, что приводится только литерал, без двоеточия.

ChDir

Изменяет текущий каталог или текущую папку

Внимание! Изменяется текущая папка на указываемом диске, а не сам диск. Для смены диска потребуется команда ChDrive.

В значении пути можно использовать обозначения относительного перемещения. Например,

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

Функция возвращает строку (String) с именем обнаруженных на диске файла, папки или подпапки. Если объект файловой системы обнаружен не будет, возвратится пустая строка.

В имени можно использовать знаки подстановки маски файла (* и ?).

Передача в качестве аргумента пустой строки возвращает список всех файлов и папок.

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

Атрибуты (копия из справки)

КонстантаЗначениеОписание
vbNormal0 Файлы без атрибутов (Значение по умолчанию.)
vbReadOnly1В дополнение к файлам без атрибутов определяет файлы, доступные только для чтения
vbHidden2В дополнение к файлам без атрибутов определяет скрытые файлы
vbSystem4В дополнение к файлам без атрибутов определяет системные файлы
vbVolume8Определяет метку тома, то есть имя логического диска (не букву!). Если указан какой-либо другой атрибут, параметр vbVolume игнорируется
vbDirectory16В дополнение к файлам без атрибутов определяет каталоги (папки)

Из контекста описания понятно, что атрибуты могут суммироваться.

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

Оператор Name переименовывает файл или папку и/или перемещает их в новое место.

Name <oldpathname> As <newpathname>

  • Обрабатываются только уже существующие объекты.
  • Файл может быть перемещен на другой диск.
  • Файлы, открытые низкоуровневыми процедурами, надо предварительно закрыть.
  • Перемещение папок и подпапок возможно только в пределах логического диска.

MkDir

Создает новый каталог или папку.

Если диск не указан, новые каталог или папка создаются на текущем диске. Имя присваивается с учетом регистра символов.

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

RmDir

Удаляет существующую директорию или папку.

Невозможно удалить папку, содержащую файлы, так что следует вначале удалить их, используя команду Kill. Также этой командой нельзя удалить файл.

Удаляет файлы с диска.

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

В имени можно использовать знаки подстановки маски файла (* и ?).

Так как команда удаляет только файлы, для удаления папок следует воспользоваться командой RmDir.

SetAttr

Устанавливает атрибуты файла.

SetAttr <имя файла>, <атрибуты>

Оба параметра являются обязательными. Имя файла может содержать путь.

Нельзя изменять атрибуты у открытых файлов!

Атрибуты:

КонстантаЗначениеОписание
vbNormal0Без атрибутов (по умолчанию)
vbReadOnly1Только для чтения (Read-only)
vbHidden2Скрытый файл (Hidden)
vbSystem4Системный файл (System)
vbArchive32Файл изменен после последнего резервного копирования

Атрибуты при указании могут суммироваться.

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

Низкоуровневые функции

Рассуждая здраво, практически невозможно сформировать однозначную последовательность изложения, так как тогда мы упремся в проблему яйца и курицы. Даже понимание того, что прежде чем считывать файл, он должен быть создан не очень помогает: чтение выполняется намного чаще.

Идентификатор файла

Его должен задать программист, но делать это вручную допустимо только для простых ситуаций. Лучше воспользоваться следующей функцией

где RangeNumber — 0 (1–255) или 2 (256–511).

Простейший вариант обращения (запроса) к функции выглядит так:

Далее по тексту будет использоваться именно выделенная красным переменная, содержащая получаемый ID (для упрощения записи). Если не будет заявлено другое или использовано явное указание.

Открывает файл для операций ввода/вывода (input/output, I/O).

Если указываемый на запись файл отсутствует, то он будет создан. Естественно, попытка чтения несуществующего файла закончится ошибкой (см. Dir).

Описание команды упрощено!

После завершения работы файл должен быть закрыт. Иначе какой-либо доступ к нему может быть заблокирован (в примитивном понимании и без дополнительного обсуждения). Для этого используется следующая команда:

В качестве параметра передается номер файла, номера файлов через запятую или ничего. В последнем случае закроются все открытые файлы.

Reset

Закрывает все файлы, открытые с помощью оператора Open, записывая содержимое их буферов на диск.

По существу, дублирует команду Close без атрибутов.

Чтение и запись

  • Последовательный (Sequential) доступ (режимы Input, Output и Append) используется для записи в текстовые файлы, например, журналы ошибок и отчеты.
  • Прямой или произвольный доступ (Random) используется для считывания и записи данных в файле без его закрытия. Файлы с прямым доступом сохраняются данные в записях, что ускоряет нахождение требуемой информации.
  • Двоичный доступ (режим Binary) используется для считывания или записи любого байта в файле, например, при сохранении или отображении растрового рисунка.

Записывает данные в последовательный файл в структурированном виде.

Необязательный параметр OutputList представляет одно или несколько числовых, или строковых выражений через запятую, которые нужно записать в файл. В переводе на обыденный язык, каждая строка подобного результирующего файла является перечнем значений с разделителем, каждое из которых записано по строгим правилам. Фактически мы получаем известный большинству CSV-файл. Чтобы не возникало неожиданностей при считывании, следует очень четко придерживаться правил.

Отсутствие OutputList (запятая в команде остается!) приводит к записи пустой строки.

В подобном файле крайне удобно хранить настройки для работы проекта, которые пользователь может изменить в соответствии со своими потребностями. Для передачи подобных макросов на сторону следует предусматривать (встраивать) возможности восстановления файлов, если пользователь их удалит или отредактирует вручную.

С другой стороны, набор множества таких строк представляет собой своего рода таблицу базы данных.

Записывает отформатированные данные в последовательный файл.

OutputList — выражение или список выражений, которые необходимо вывести.

Его синтаксис

С учетом специфического применения оператора, детали его действия опущены.

Параметр n указывает, сколько пробелов будет возвращено. При переполнении строки, излишек переходит на следующую.

Если не умничать, то функция будет работать только с моноширинным шрифтом.

Вставляет табулятор. Если параметр не указан, печать смещается к следующей позиции (шаг равен 14 символам). Наличие параметра перемещает к позиции с указанным номером. А если она уже была, то на эту позицию, но следующей строки.

Если значение width равно 0, длина строки является неограниченной. Оно используется по умолчанию.

Читает строку со структурированными данными из открытого последовательного файла и сохраняет эти данные в переменных.

Параметр VarList представляет собой перечисленный список переменных, в которые сохраняются считываемые данные.

Считывает одну строку из открытого последовательного файла и присваивает ее переменной типа String или Variant.

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

Считывает данные из открытого файла на диске в переменную.

Необязательный параметр RecNumber типа Variant (Long) указывает на номер записи (для файлов, открытых в режиме Random) или байтовое число (для файлов, открытых в режиме Binary), с которого начинается считывание. При его отсутствии, запятая сохраняется Результат сохраняется в переменную VarName.

Записывает данные из переменной в файл на диске.

  1. Параметр Len, задаваемый при открытии файла, играет ключевую роль. Во-первых, длина записи не может его превышать. Во-вторых, если запись меньше, то она дополняется пробелами до размера Len.
  2. Если записываемая переменная является строкой переменной длины, оператор Put записывает 2-байтовый дескриптор c длиной строки, а затем переменную. То есть длина записи, указанная предложением Len в операторе Open, должна быть по крайней мере на 2 больше, чем фактическая длина строки записываемых данных.
  3. Если записываемая переменная имеет числовой подтип Variant, оператор Put записывает дополнительно 2 байта, указывающие на тип. См. п.2.
  4. Если записываемая переменная имеет строковый подтип Variant, оператор Put записывает дополнительно 2 байта, указывающие на тип и еще 2 — на длину. Соответственно, значение Len должно быть увеличено на 4.
  5. Если записываемая переменная является динамическим массивом пользовательского типа, Put записывает дескриптор, длина которого равна 2 плюс в 8 раз больше числа измерений, то есть 2 + 8 * число измерений. То есть, для одномерного массива — 10 (2+8*1), для двумерного — 18 (2+8*2) и т.д. Плюс размер массива, описать который нормально сотрудники Microsoft не удосужились.
  6. Если записываемая переменная является массивом фиксированного размера, оператор Put записывает только данные, без дескриптора.
  7. При любом другом типе переменной все также, как и в п.6.
  • Параметр Len, задаваемый при открытии, не действует. Значения переменных записываются последовательно, без заполнителя.
  • Для любого другого массива, чем массив типа, определяемого пользователем, оператор Put записывает только данные, без дескриптора.
  • Оператор Put записывает строки переменной длины, не являющиеся элементами типов, определяемых пользователем, с числом байтов равных числу знаков в строке.

Параметр position указывает начальную точку чтения и должен располагаться в диапазоне 1—2 147 483 647.

По существу, оператор назван неудачно, так как ничего не ищет, а просто перемещается по команде.

Примеры

Здесь не стоит разговаривать о микроскопических программах, хотя из приводимых примеров можно извлекать блоки и использовать их в качестве заготовок.

Также не будет полноценных примеров для бездумного копирования.

Многие ситуации содержат схожие требования, но идеальное решение должно состоять из множества функций. Сейчас их делать не очень хочется, но это запланировано в перспективе.

В любом случае, все примеры полностью работоспособны.

Принципиально важен факт документирования функции с точки зрения возвращаемых значений. Равно как и описание передаваемых параметров.

  • Путь должен содержать литерал диска (C. ).
  • Путь не должен заканчиваться косой чертой: «C:\a\b».
  • Если путь и файл передаются отдельно, то имя файла не должно содержать пути.
  • Все параметры являются обязательными и не могут быть пустыми. Последнее обстоятельство не проверяется.

Создание файла

Данное действие специально вынесено в отдельный заголовок, так как будет базовым для примеров, когда файла ещё нет. Оно имеет множество особенностей, включая фатальные для хранящейся информации.

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

Ещё один момент. Добавим программу (фрагмент), которая будет запускать процесс.

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

Проверка существования файла

Имеет прикладное назначение не только в случае использования низкоуровневых функций. По существу, нужно в любом программном проекте в качестве условия его запуска.

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

Запись информации в новый файл

Разумеется, что в этой ситуации файл нужно не открыть, а создать.

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

Добавление информации в существующий файл

Казалось бы. Но первым действием должна быть проверка его наличия, если это не было сделано в программе ранее.

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

Построчное считывание файла

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!

Назначение текущей папки

Если работа с проектами так или иначе связана с файлами, хранящимися в одной папке, самым простым вариантом будет назначение ее текущей.

Представленный пример имеет формат глобальной функции (доступной для любого проекта), производящей множество проверок.

Доступ к размещенным в этом месте материалам ограничен и предоставляется следующим категориям:
1. Студент I/II курса ВХК РАН. 2. Бывший студент ВХК РАН. 3. Подготовка к ОГЭ. 4. Подготовка к ЕГЭ. 5. VIP-пользователь. 6. Благотворитель.

В принципе, возможна как оптимизация программы, так и ее модернизация или приспособление для других нужд.


Copyright © 1993–2021 Мацкявичюс Д.А. Все права защищены.
Никакая часть сайта не может быть воспроизведена никаким способом без письменного разрешения правообладателя и явной ссылки на данный ресурс.

Ответ однозначный - да. Для этого в языке VBA есть специальный оператор - kill. Для нас он и представляет определённый интерес.

Давайте посмотрим как его можно использовать. Имеется папка (в моём примере это C:\Для всех), её нужно очистить от файлов с расширением *.xlsx.

Удаление файлов с помощью VBA в Excel

Создадим новую книгу и, как обычно, добавим в неё стандартный модуль. Мы рассматривали этот алгоритм в предыдущих статьях.

  • вкладка «Разработчик», кнопка «Visual basic»;
  • вставляем новый модуль и помещаем следующий код макроса.

Sub DF()
' Удаление всех файлов из папки с расширением .xlsx
Kill "C:\Для всех\" & "*.xlsx"
End Sub

Удаление файлов с помощью VBA в Excel

Будьте внимательны - макрос не удаляет файлы в "Корзину", а полностью стирает их с жёсткого диска компьютера!

Аналогично сочетанию клавиш Shift+Delete.

Проверим работоспособность нашего кода. Запустим окно выбора макросов комбинацией клавиш Alt+F8 и нажмём "Выполнить".

Удаление файлов с помощью VBA в Excel

Результат на лицо - в папке остался только один файл "Изменение листа.xlsm" потому что у него разрешение не совпадает с указанным в макросе.

Также хочется отметить, что привычное сочетание клавиш Ctrl+Z не поможет восстановить файлы.

Удаление файлов с помощью VBA в Excel

Необходимая оговорка - макрос можно использовать для всех типов файлов. Для этого необходимо изменить в макросе расширение *.xlsx на нужное для удаления вам.

Я оставлю это вам, чтобы выяснить различные обработки ошибок, необходимых, но это среди ошибок обработки вещей, которые я буду рассматривать:

  • проверьте, не передается ли пустая строка.
  • проверить строку, содержащую символы, недопустимые в имени файла/пути

2.) Как удалить файл. Посмотреть этого. в основном используйте команду Kill, но вы должны учитывать возможность того, что файл доступен только для чтения. Вот функция для вас:

опять же, я оставлю обработку ошибок вам, и снова это то, что я бы рассмотрел:

Должно ли это вести себя по-разному для каталога и файла? Должен ли пользователь явно указывать, что он хочет удалить каталог?

вы хотите, чтобы код автоматически сбрасывал атрибут только для чтения или должен пользователю будет дано какое-то указание на то, что атрибут "только чтение" установлен?

EDIT: пометка этого ответа как Вики сообщества, чтобы любой мог изменить его, если это необходимо.

альтернативный способ код ответа Brettski, с которым я совершенно согласен, может быть

тот же эффект, но меньше (ну, вообще нет) объявлений переменных.

FileSystemObject-действительно полезный инструмент, с которым стоит подружиться. Помимо всего прочего, для написания текстовых файлов он иногда может быть быстрее, чем устаревшая альтернатива, что может удивить нескольких людей. (По моему опыту, по крайней мере, YMMV).

Я, вероятно, вспыхну за это, но какой смысл тестировать существование, если вы просто собираетесь удалить его? Один из моих основных pet peeves-это приложение, бросающее диалог об ошибке с чем-то вроде "не удалось удалить файл, его не существует!"

Если файл не существует, в первую очередь, миссия выполнена!

следующее Можно использовать для проверки наличия файла, а затем для его удаления.

в VB его нормально Dir чтобы найти каталог файла. Если он не пуст, то он существует, а затем использует Kill чтобы избавиться от файла.

задайте ссылку на сценарий.Библиотека времени выполнения а затем используйте FileSystemObject:

вот совет: вы повторно используя имя файла, или планируете сделать что-то, что требует немедленного удаления?

вы можете заставить VBA уволить команду DEL "C:\TEMP\scratchpad - . txt " /F из командной строки асинхронно использование VBA.Шелл:

Оболочка " DEL "& chr (34) & strPath & chr (34) & "/F", vbHide

обратите внимание на двойные кавычки (символ ASCII 34) вокруг имени файла: я предполагаю, что у вас есть сетевой путь, или длинное имя файла, содержащее пробелы.

Если это большой файл, или он находится на медленном сетевом подключении, огонь и забыть-это путь. Конечно, вы никогда не увидите, сработало это или нет; но вы немедленно возобновляете свой VBA, и бывают моменты, когда это лучше, чем ждать сети.

вы можете установить ссылку на скрипт.Библиотека времени выполнения, а затем использовать FileSystemObject. Он имеет метод DeleteFile и метод FileExists.

Предположим, что ежедневно во временную папку поступают файлы отчетов от филиалов. Они могут собираться из почты кодом вроде такого: Сохранить вложения из Outlook в указанную папку или добавляться в папку иными средствами. Далее Вы собираете данные из этих файлов неким кодом(вроде этого - Как собрать данные с нескольких листов или книг?). Но с каждым днем файлов все больше и больше и приходится заходить в папку и руками чистить её от лишних файлов, чтобы при сборе данных не приходилось каждый раз искать и отбирать только новые файлы.
Если надо удалять только конкретные файлы(например только файлы Excel, содержащие в имени слово "отчет"), то можно использовать такой код:

Чтобы удалять полностью все файлы в папке(а не только файлы Excel), а саму папку оставить, то строку sFiles = Dir(sFolder & "*отчет*.xls*") надо записать так: sFiles = Dir(sFolder & "*")

Если необходимо удалять файлы по дате создания/изменения(например, только файлы, созданные раньше 01.03.2017), то можно использовать такой код:

Если необходимо всегда удалять файлы, дата создания которых раньше текущей, то строку dKill = CDate("01.03.2017") нужно заменить на такую: dKill = Date . Если удалить надо файлы недельной давности, то: dKill = Date-7

Если же необходимо удалить папку полностью, а не только файлы в ней, то лучше использовать такой код:

Sub RemoveFolderWithContent() Dim sFolder As String, sFiles As String 'диалог запроса выбора папки на удаление With Application.FileDialog(msoFileDialogFolderPicker) If .Show = False Then Exit Sub sFolder = .SelectedItems(1) End With sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator) 'путь к папке можно задать статично, если он заранее известен и не изменяется ' sFolder = "C:\temp\Ежедневные отчеты\10072017" 'путь к папке, которую надо удалить Shell "cmd /c rd /S/Q """ & sFolder & """" End Sub

Этот код удалить папку вместе со всеми файлами буквально за секунду.
Вообще в VBA есть специальная команда для удаления директорий(папок) RmDir . Но она способна удалить только пустую папку, поэтому редко когда можно найти её практическое применение. Если в файле есть хоть один файл то команда RmDir выдаст ошибку '75' - File/Path access error .


Иногда, когда мы работаем в VBA, мы создаем некоторые нежелательные файлы, или у нас есть некоторые нежелательные файлы на нашем компьютере. Как мы от них избавимся? Мы можем просто пойти и удалить каждый файл вручную, найдя файл и щелкнув по нему правой кнопкой мыши, затем мы нажимаем кнопку удаления, чтобы удалить файл. Или мы можем нажать кнопку удаления на клавиатуре, чтобы удалить файл. Но как мы сделаем это в VBA, мы узнаем из этой статьи.

Итак, теперь мы поняли концепцию этой темы, что нам нужно удалить файл с помощью макросов VBA. В VBA у нас есть команда kill, которая используется для удаления файла из его местоположения. Когда мы просто удаляем файл, пройдя через процесс поиска файла и щелкнув правой кнопкой мыши по нему, чтобы удалить или даже нажать кнопку удаления, файл отправляется в корзину. Но когда мы используем команду Kill в VBA для удаления файла, файл навсегда удаляется с компьютера. Это не идет в корзину. Теперь давайте посмотрим на синтаксис, который мы будем использовать для удаления файла с использованием VBA. Это выглядит следующим образом:

Синтаксис удаления файла в Excel VBA

Всегда помните, что путь к файлу должен быть в кавычках. Теперь, чтобы удалить файл в VBA, мы должны иметь его путь. Как мы получаем путь к файлу? Нам нужно щелкнуть правой кнопкой мыши по файлу и выбрать свойства, которые дают нам различные варианты свойств файла, как только мы нажмем на вкладку безопасности, которая является вторым номером на вкладках, где мы можем найти путь под именем объекта. Взгляните на скриншот ниже для справки.

Путь, указанный после имени объекта, является аргументом, который нам нужно указать для функции killfile, чтобы удалить любой файл. Теперь давайте начнем удалять файлы, посмотрев на несколько примеров ниже.

Прежде чем перейти к примерам, всегда убедитесь, что у нас включена вкладка разработчика для использования макросов. Это делается путем перехода в раздел файлов, а затем в раздел параметров. Мы найдем флажок, который нужно установить, чтобы включить вкладку разработчика. Теперь давайте перейдем к примерам. Например, у меня есть два файла с именем sample 1 и sample 2. Оба являются текстовыми файлами и находятся на рабочем столе. Посмотрите на них ниже.


Как удалить файл с помощью VBA?

Давайте посмотрим примеры удаления файла в Excel VBA.

Вы можете скачать этот VBA Удалить файл Excel шаблоны здесь - VBA Удалить файл Excel шаблоны

Пример № 1 - VBA Удалить файл

Давайте сначала удалим файл образца 1 в этом примере. Оба примера будут иметь разницу в одну минуту, которую я объясню в конце темы. Во-первых, нам нужно получить путь к файлу примера 1. Чтобы сделать это, щелкните правой кнопкой мыши на файле и перейдите в раздел «Свойства», и мы найдем путь рядом с именем объекта следующим образом.


Шаг 1: Теперь давайте войдем в VBA с опцией visual basic. Его можно найти на вкладке разработчика.


Шаг 2: Как только мы находимся в VBA, нам нужно вставить модуль. Чтобы войти в окно кода, дважды щелкните модуль, который приведет нас к окну кода.


Шаг 3: Теперь первый шаг для написания кода VBA - назвать макрос следующим образом.

Код:


Шаг 4: Объявите переменную как строку, которая будет хранить путь к файлу.

Код:


Шаг 5: Теперь давайте назначим путь к этой строке файла, который мы хотим удалить, это sample1.

Код:


Шаг 6: Теперь давайте удалим файл, используя функцию Kill следующим образом.

Код:


Шаг 7: Когда мы запускаем приведенный выше код и смотрим на рабочий стол, мы больше не можем найти первый созданный нами текстовый файл.


Присутствует только второй файл, и первый файл перемещается. Теперь, что произойдет, если путь к файлу был неправильным или файл даже не существует. Теперь мы удалили первый файл, и он даже не существует, поэтому мы можем запустить код еще раз, чтобы проверить, какой результат мы получим. Запустите приведенный выше код еще раз.


VBA дает нам ошибку во время выполнения, что файл не найден. Это важно, что мы должны иметь в виду.

Пример № 2 - VBA Удалить файл

Теперь давайте удалим второй файл, используя функцию kill. Опять же, нам нужно указать путь ко второму файлу, для которого нам нужно щелкнуть правой кнопкой мыши по файлу, и из опции свойств перейти к безопасности, и мы найдем путь к имени объекта следующим образом.


Теперь у нас есть путь для второго файла, поэтому давайте удалим этот файл.

Шаг 1: Войдите в VBA через вкладку разработчика.


Шаг 2: Как только мы находимся в VBA, нам нужно вставить модуль. Чтобы войти в окно кода, дважды щелкните модуль, который приведет нас к окну кода.


Шаг 3: Сначала назовите макрос, чтобы продолжить работу следующим образом.

Код:


Шаг 4: Как и выше, объявите переменную как строку для хранения пути к файлу.

Код:


Шаг 5: В строке сохраните путь к файлу следующим образом.

Код:


Шаг 6: Теперь мы проверим, что файл даже существует, используя функцию If следующим образом.

Код:


Шаг 7: Теперь, если мы запустим приведенный выше код, мы увидим, что файл удален и его больше нет на рабочем столе.


То, что нужно запомнить

Есть несколько вещей, которые мы должны помнить об удалении файла в VBA:

  1. Мы используем функцию Kill для удаления файла.
  2. Нам нужен путь к конкретному файлу, который нужно удалить.
  3. Если файл не найден, мы сталкиваемся с ошибкой.
  4. Файлы, удаленные функцией Kill, не попадают в корзину.

Рекомендуемые статьи

Это руководство по удалению файла VBA. Здесь мы обсудим, как использовать Excel VBA Delete File вместе с несколькими практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

Читайте также: