Копіювати файл / робочу книгу VBA

VBA дозволяє копіювати файл за допомогою FileSystemObject. У цьому посібнику ви дізнаєтесь, як скопіювати та перейменувати певний файл.

Якщо ви хочете дізнатися, як перейменувати файл, ви можете натиснути на це посилання: VBA Rename File

Скопіюйте файл / робочу книгу

Ми покажемо, як скопіювати існуючий файл Зразок файлу 1.xlsx у папці Папка VBA. У цьому прикладі ми не будемо перейменовувати файл, просто скопіюйте та перепишіть його. Наразі у папці є лише один файл:

Зображення 1. Файл у папці C: \ VBA Folder

Ось код:

12345 Dim oFSO As ObjectВстановити 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, що означає, що вихідний файл перезаписується.

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

1 Викличте oFSO.CopyFile ("C: \ VBA Folder \ Sample file 1.xlsx", "C: \ VBA Folder \", True)

В результаті ви отримаєте помилку, як ви бачите на зображенні 2:

Зображення 2. Помилка під час копіювання файлу

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

Інший можливий варіант копіювання файлу - перейменувати його. Це схоже на копіювання файлу, але тепер вам просто потрібно встановити шлях призначення з іншою назвою. Ось код:

12345 Dim oFSO As ObjectВстановити 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