VBA Копиране на файл / работна книга

VBA ви позволява да копирате файл, като използвате FileSystemObject. В този урок ще научите как да копирате и преименувате конкретен файл.

Ако искате да научите как да преименувате файл, можете да кликнете върху тази връзка: VBA Преименуване на файл

Копирайте файл / работна книга

Ще покажем как да копирате съществуващия файл Примерен файл 1.xlsx в папката Папка VBA. В този пример няма да преименуваме файла, просто го копирайте и презапишете. В момента папката има само един файл:

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

Ето кода:

12345 Dim oFSO As ObjectЗадайте oFSO = CreateObject ("Scripting.FileSystemObject")Извикайте oFSO.CopyFile ("C: \ VBA папка \ Примерен файл 1.xlsx", "C: \ VBA папка \", True)

Първо трябва да създадете обекта на класа Scripting.FileSystemObject:

1 Задайте oFSO = CreateObject ("Scripting.FileSystemObject")

След това можем да използваме метода CopyFile:

1 Извикайте oFSO.CopyFile ("C: \ VBA папка \ Примерен файл 1.xlsx", "C: \ VBA папка \", True)

Първият параметър на метода е пътят на източника, а вторият е пътят на местоназначението. Третият параметър е Презаписване. Тъй като имаме едни и същи пътища на източник и дестинация, трябва да зададем Презаписване на вярно или невярно. В този пример поставяме True, което означава, че оригиналният файл е презаписан.

Нека да разгледаме сега какво се случва, ако имаме същите дестинации, но задаваме Overwrite на False. Просто трябва да промените този ред на кода:

1 Извикайте oFSO.CopyFile ("C: \ VBA папка \ Примерен файл 1.xlsx", "C: \ VBA папка \", True)

В резултат на това ще получите грешка, както можете да видите на Изображение 2:

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

Копирайте и преименувайте файл

Друг възможен вариант при копиране на файл е да го преименувате. Това е подобно на копиране на файл, но сега просто трябва да зададете път на местоназначение с различно име. Ето кода:

12345 Dim oFSO As ObjectЗадайте oFSO = CreateObject ("Scripting.FileSystemObject")Извикайте oFSO.CopyFile ("C: \ VBA папка \ Примерен файл 1.xlsx", "C: \ VBA Папка \ Примерен файл Copy.xlsx")

Както можете да видите от последния ред на кода, искаме да копираме файла Примерен файл 1.xlsx в същата папка и я кръстете Примерен файл Copy.xlsx:

1 Извикайте oFSO.CopyFile ("C: \ VBA папка \ Примерен файл 1.xlsx", "C: \ VBA Папка \ Примерен файл Copy.xlsx")

Сега имаме два файла във VBA папката. Резултатът от кода е на Изображение 3:

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

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave