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. Скопіюйте та перейменуйте файл