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:
- Primeiro, você precisa declarar uma variável.
- Em seguida, você precisa especificar FileSystemObject para a variável que acabou de definir.
- Em seguida, você precisa definir o local de origem no método “CopyFile”.
- 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.
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).
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