O VBA permite que você copie um arquivo, usando o FileSystemObject. Neste tutorial, você aprenderá como copiar e renomear um arquivo específico.
Se você quiser aprender como renomear um arquivo, pode clicar neste link: VBA Rename File
Copiar um arquivo / pasta de trabalho
Mostraremos como copiar o arquivo existente Arquivo de amostra 1.xlsx na pasta Pasta VBA. Neste exemplo, não renomearemos o arquivo, apenas copiaremos e sobrescreveremos. A pasta atualmente contém apenas este arquivo:
Imagem 1. Arquivo na pasta C: \ Pasta VBA
Aqui está o código:
12345 | Dim oFSO As ObjectDefina oFSO = CreateObject ("Scripting.FileSystemObject")Chame oFSO.CopyFile ("C: \ VBA Folder \ Sample file 1.xlsx", "C: \ VBA Folder \", True) |
Você primeiro precisa criar o objeto da classe Scripting.FileSystemObject:
1 | Defina oFSO = CreateObject ("Scripting.FileSystemObject") |
Então podemos usar o método CopyFile:
1 | Chame oFSO.CopyFile ("C: \ VBA Folder \ Sample file 1.xlsx", "C: \ VBA Folder \", True) |
O primeiro parâmetro do método é o caminho de origem e o segundo é o caminho de destino. O terceiro parâmetro é Sobrescrever. Como temos os mesmos caminhos de origem e destino, precisamos definir Sobrescrever como verdadeiro ou falso. Neste exemplo, colocamos True, o que significa que o arquivo original é sobrescrito.
Vejamos agora o que acontece se tivermos os mesmos destinos, mas definirmos Overwrite como False. Você só precisa alterar esta linha do código:
1 | Chame oFSO.CopyFile ("C: \ VBA Folder \ Sample file 1.xlsx", "C: \ VBA Folder \", True) |
Como resultado, você obterá um erro, como pode ver na Imagem 2:
Imagem 2. Erro ao copiar o arquivo
Copiar e renomear um arquivo
Outra opção possível ao copiar um arquivo é renomeá-lo. É semelhante a copiar um arquivo, mas agora você só precisa definir o caminho de destino com um nome diferente. Aqui está o código:
12345 | Dim oFSO As ObjectDefina oFSO = CreateObject ("Scripting.FileSystemObject")Chame oFSO.CopyFile ("C: \ VBA Folder \ Sample file 1.xlsx", "C: \ VBA Folder \ Sample file Copy.xlsx") |
Como você pode ver na última linha do código, queremos copiar o arquivo Arquivo de amostra 1.xlsx na mesma pasta e nomeie-a Arquivo de amostra Copy.xlsx:
1 | Chame oFSO.CopyFile ("C: \ VBA Folder \ Sample file 1.xlsx", "C: \ VBA Folder \ Sample file Copy.xlsx") |
Agora temos dois arquivos na pasta VBA. O resultado do código está na Imagem 3:
Imagem 3. Copie e renomeie o arquivo