Как скопировать файл excel с помощью vba?

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

В этом уроке мы увидим, как писать код в обоих направлениях. Здесь вам нужно использовать FileSystemObject , который обеспечивает доступ к файлам и папкам в Windows.

Скопируйте файл Excel в отдельную папку

 Sub myMacro() Dim myFile As Object Set myFile = CreateObject("Scripting.FileSystemObject") Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", "C:\Users\admin\Desktop\", True) End Sub

Чтобы написать код выше:

скопировать-файл-excel-в-папку
  1. Сначала вам нужно объявить переменную.
  2. Далее вам нужно указать FileSystemObject для только что определенной переменной.
  3. Далее вам нужно установить исходное местоположение в методе «CopyFile».
  4. В конце укажите местоположение папки, куда вы хотите его вставить.

Когда вы запускаете этот макрос , он копирует «текстовый файл» книги Excel из папки и вставляет его в место, указанное нами в коде.

указать объект-файловой системы

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

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

 Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", "C:\Users\admin\Desktop\", True)

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

 Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", "C:\Users\admin\Desktop\folder\test-file1.xlsx ", True)

Когда вы запускаете этот код, он копирует файл (текстовый файл.xlsx) из папки и копирует его в ту же папку с другим именем (test-file1.xlsx).

скопировать файл и переименовать
 Dim myFile As Object Set myFile = _ CreateObject("Scripting.FileSystemObject") Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", _ "C:\Users\admin\Desktop\folder\test-file1.xlsx", True) End Sub