Arquivo de cópia / pasta de trabalho VBA

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

wave wave wave wave wave