Como copiar um arquivo excel usando vba?

Você pode usar o código VBA para copiar um arquivo (pasta de trabalho) de uma pasta para outra ou também pode copiar um arquivo para a mesma pasta usando um nome diferente.

Neste tutorial, veremos como escrever código em ambas as direções. Aqui você precisa usar o FileSystemObject que fornece acesso a arquivos e pastas no Windows.

Copie um arquivo Excel para uma pasta separada

 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

Para escrever o código acima:

copiar um arquivo Excel em uma pasta
  1. Primeiro, você precisa declarar uma variável.
  2. Em seguida, você precisa especificar FileSystemObject para a variável que acabou de definir.
  3. Em seguida, você precisa definir o local de origem no método “CopyFile”.
  4. Ao final, defina o local da pasta onde deseja colá-lo.

Quando você executa esta macro , ela copia o “arquivo de texto” da pasta de trabalho do Excel da pasta e o cola no local que especificamos no código.

especificar-objeto do sistema de arquivos

Copie um arquivo e renomeie

Quando você tenta copiar e colar um arquivo no mesmo local, há uma boa chance de que o VBA mostre um erro. Nessa situação, a melhor forma é renomear o arquivo ao copiá-lo.

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

Acima está o código de linha que usei no método anterior. Agora você precisa fazer uma alteração apenas nesta linha. Para o local de destino, você precisa adicionar o arquivo que deseja usar para o novo arquivo.

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

Ao executar esse código, ele copia o arquivo (arquivo de texto.xlsx) da pasta e o copia para a mesma pasta com um nome diferente (arquivo de teste1.xlsx).

copie um arquivo e renomeie
 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

Adicione um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *