VBA – Copiar Arquivo / Pasta de Trabalho

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on July 29, 2023

Este tutorial demonstrará como copiar um arquivo usando o VBA.

O VBA permite que você copie um arquivo usando o FileSystemObject.

Se você quiser aprender a renomear um arquivo, clique neste link: VBA Renomear arquivo

Copiar um Arquivo / Pasta de Trabalho

Mostraremos como copiar o arquivo existente Arquivo Exemplo 1.xlsx na pasta Pasta VBA. Neste exemplo, não renomearemos o arquivo, apenas o copiaremos e o substituiremos. Atualmente, a pasta tem apenas esse arquivo:

localizacao arquivo exemplo

Imagem 1. Arquivo na pasta C:\Pasta VBA

Aqui está o código:

Dim oFSO As Object
 
Set oFSO = CreateObject("Scripting.FileSystemObject")
 
Call oFSO.CopyFile("C:\Pasta VBA\Arquivo Exemplo 1.xlsx", "C:\Pasta VBA\", True)

Primeiro, você precisa criar o objeto da classe Scripting.FileSystemObject:

Set oFSO = CreateObject("Scripting.FileSystemObject")

Em seguida, podemos usar o método CopyFile:

Call oFSO.CopyFile("C:\Pasta VBA\Arquivo Exemplo 1.xlsx", "C:\Pasta VBA\", True)

O primeiro parâmetro do método é o caminho de origem e o segundo é o caminho de destino. O terceiro parâmetro é Overwrite. Como temos os mesmos caminhos de origem e destino, precisamos definir Overwrite como True ou False. Neste exemplo, colocamos True, o que significa que o arquivo original será substituído.

Vamos ver agora o que acontece se tivermos os mesmos destinos, mas definirmos Overwrite como False. Você só precisa alterar esta linha do código:

Call oFSO.CopyFile("C:\Pasta VBA\Arquivo Exemplo 1.xlsx", "C:\Pasta VBA\", True)

Como resultado, você receberá um erro, como pode ser visto na Imagem 2:

arquivo ja existe

Imagem 2. Erro ao copiar o arquivo

Copiar e Renomear um Arquivo

Outra opção possível ao copiar um arquivo é renomeá-lo. É semelhante à cópia de um arquivo, mas agora você só precisa definir o caminho de destino com um nome diferente. Aqui está o código:

Dim oFSO As Object

Set oFSO = CreateObject("Scripting.FileSystemObject")

Call oFSO.CopyFile("C:\Pasta VBA\Arquivo Exemplo 1.xlsx", "C:\Pasta VBA\Arquivo Exemplo 1 Copia.xlsx")

Como você pode ver na última linha do código, queremos copiar o arquivo Arquivo Exemplo 1.xlsx na mesma pasta e nomeá-lo para o SArquivo Exemplo 1 Copia.xlsx:

Call oFSO.CopyFile("C:\Pasta VBA\Arquivo Exemplo 1.xlsx", "C:\Pasta VBA\Arquivo Exemplo 1 Copia.xlsx")

Agora temos dois arquivos na Pasta VBA. O resultado do código está na Imagem 3:

arquivo copiado

Imagem 3. Copiar e renomear o arquivo

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA