VBA Копировать файл / книгу

VBA позволяет копировать файл, используя FileSystemObject. В этом руководстве вы узнаете, как копировать и переименовывать определенный файл.

Если вы хотите узнать, как переименовать файл, вы можете нажать на эту ссылку: VBA Rename File

Копировать файл / книгу

Мы покажем, как скопировать существующий файл Пример файла 1.xlsx в папке Папка VBA. В этом примере мы не будем переименовывать файл, а просто скопируем и перезапишем его. В настоящее время в папке есть только один файл:

Изображение 1. Файл в папке C: \ VBA Folder

Вот код:

12345 Dim oFSO как объектУстановите oFSO = CreateObject ("Scripting.FileSystemObject")Вызов oFSO.CopyFile ("C: \ VBA Folder \ Sample file 1.xlsx", "C: \ VBA Folder \", True)

Сначала вам нужно создать объект класса Scripting.FileSystemObject:

1 Установите oFSO = CreateObject ("Scripting.FileSystemObject")

Тогда мы можем использовать метод Копировать файл:

1 Вызов oFSO.CopyFile ("C: \ VBA Folder \ Sample file 1.xlsx", "C: \ VBA Folder \", True)

Первый параметр метода - это исходный путь, а второй - путь назначения. Третий параметр - Перезаписать. Поскольку у нас одинаковые пути источника и назначения, нам нужно установить Перезаписать в True или False. В этом примере мы устанавливаем True, что означает, что исходный файл перезаписывается.

Давайте теперь посмотрим, что произойдет, если у нас будут те же места назначения, но для параметра Overwrite установлено значение False. Вам просто нужно изменить эту строку кода:

1 Вызов oFSO.CopyFile ("C: \ VBA Folder \ Sample file 1.xlsx", "C: \ VBA Folder \", True)

В результате вы получите сообщение об ошибке, как показано на изображении 2:

Изображение 2. Ошибка при копировании файла

Скопируйте и переименуйте файл

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

12345 Dim oFSO как объектУстановите oFSO = CreateObject ("Scripting.FileSystemObject")Вызов oFSO.CopyFile ("C: \ VBA Folder \ Sample file 1.xlsx", "C: \ VBA Folder \ Sample file Copy.xlsx")

Как видно из последней строчки кода, мы хотим скопировать файл Пример файла 1.xlsx в той же папке и назовите его Пример файла Copy.xlsx:

1 Вызов oFSO.CopyFile ("C: \ VBA Folder \ Sample file 1.xlsx", "C: \ VBA Folder \ Sample file Copy.xlsx")

Теперь у нас есть два файла в папке VBA. Результат кода представлен на изображении 3:

Изображение 3. Скопируйте и переименуйте файл.

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave