FileCopy do VBA do Excel

Existem várias maneiras de copiar ou mover um arquivo de uma pasta para outra. Podemos fazer isso manualmente, copiando e cortando o ícone do arquivo e colando-o na pasta de destino. Mas quando se trata de automatizar esse processo de cópia do arquivo, também podemos fazer isso no VBA. Para copiar o arquivo, temos uma função disponível no VBA com o mesmo nome "File Copy".

Sintaxe do FileCopy no Excel VBA

É muito fácil aplicar a cópia de arquivo no VBA. A sintaxe da cópia de arquivo é mostrada abaixo.

A cópia de arquivo tem apenas dois componentes para alimentar. Que são:

  • Fonte - Aqui colocaremos o local de origem de onde precisamos copiar o arquivo.
  • Destino - E esta será a pasta de destino onde estaremos colando o arquivo copiado.

A sintaxe completa estará no tipo de dados String. Porque estaremos usando o caminho do arquivo que será como texto.

Como copiar um arquivo no Excel VBA?

Agora vamos tentar com alguns exemplos de cópia de arquivo VBA no Excel.

Você pode fazer o download deste modelo do Excel para copiar um arquivo do VBA aqui - Modelo do Excel para copiar um arquivo do VBA

Exemplo # 1 - FileCopy no VBA

No primeiro exemplo, veremos como copiar um arquivo de um local de origem e colá-lo no local de destino de uma maneira muito simples.

Para isso, precisamos de um arquivo de qualquer tipo ou extensão. Aqui estamos considerando um arquivo do Excel com a extensão xlsx . Como podemos ver, colocamos esse arquivo do Excel em um local de fácil acesso chamado Teste .

Agora, copiaremos esse arquivo com a ajuda do FileCopy para a pasta de destino abaixo.

Etapa 1: Para isso, vá para o VBA e abra um módulo na opção suspensa do menu Inserir, como mostrado abaixo.

Etapa 2: agora no módulo aberto, escreva a subcategoria do VBA FileCopy ou em qualquer outro nome, conforme sua escolha.

Código:

 Sub VBA_Copy1 () End Sub 

Etapa 3: Agora abra diretamente a função FileCopy, como mostrado abaixo.

Código:

 Sub VBA_Copy1 () FileCopy (End Sub 

Etapa 4: Agora, entre aspas, escreva o endereço do local de origem, seguido pelo nome e pela extensão do arquivo, como mostrado abaixo.

Código:

 Sub VBA_Copy1 () FileCopy "D: \ Test1 \ Hello.xlsx", End Sub 

Etapa 5: para o local de destino, coloque novamente o caminho entre vírgulas invertidas, seguido de arquivo e extensão.

Código:

 Sub VBA_Copy1 () FileCopy "D: \ Test1 \ Hello.xlsx", "D: \ Arquivo VPB \ Arquivos de abril \ Hello.xlsx" End Sub 

Etapa 6: Agora compile o código e execute-o clicando no botão Reproduzir, localizado abaixo da barra de menus. Veremos que o arquivo do Excel com o nome Teste agora é copiado do local de origem para o local de destino, como mostrado abaixo. Como não havia nada no arquivo, o tamanho do arquivo está chegando a 0 KB .

Exemplo # 2 - FileCopy no VBA

Em outro exemplo, veremos como copiar o arquivo do local de origem para o destino, definindo a variável. Esse processo é um pouco demorado, mas mais confiável, pois iremos corrigir os parâmetros e a variável.

Etapa 1: Agora abra primeiro um novo módulo e escreva a subcategoria de Cópia de arquivo do VBA, como mostrado abaixo.

Código:

 Sub VBA_Copy2 () End Sub 

Etapa 2: Primeiro, defina uma variável na qual colocaremos o local de origem do arquivo no mesmo arquivo excel que usamos no exemplo-1 como String.

Código:

 Sub VBA_Copy2 () Dim FirstLocation como String End Sub 

Etapa 3: De maneira semelhante, precisaremos de outra variável para o local de destino.

Código:

 Sub VBA_Copy2 () Dim FirstLocation como sequência Dim SecondLocation como sequência End Sub 

Etapa 4: Agora coloque o local na primeira variável definida, que é " FirstLocation ", juntamente com o nome do arquivo e sua extensão.

Código:

 Sub VBA_Copy2 () Dim FirstLocation como sequência Dim SecondLocation como sequência FirstLocation = "D: \ Test1 \ Hello.xlsx" End Sub 

Etapa 5: de maneira semelhante, faça o mesmo para o local de destino usando a variável " SecondLocation" que definimos acima.

Código:

 Sub VBA_Copy2 () Dim FirstLocation como sequência Dim SecondLocation como sequência FirstLocation = "D: \ Test1 \ Hello.xlsx" SecondLocation = "D: \ Arquivo VPB \ Arquivos \ Arquivos de abril \ Hello.xlsx" End Sub 

Etapa 6: Agora é a hora de usar a função FileCopy .

Código:

 Sub VBA_Copy2 () Dim FirstLocation como sequência Dim SecondLocation como sequência FirstLocation = "D: \ Test1 \ Hello.xlsx" SecondLocation = "D: \ Arquivo VPB \ Arquivos \ April Files \ Hello.xlsx" FileCopy End Sub 

Conforme a sintaxe do FileCopy primeiro, temos que colocar o local de origem, onde mantemos o arquivo. Mas como já definimos as pastas de local de origem e destino acima para as duas variáveis.

Etapa 7: Então aqui podemos selecionar diretamente essas variáveis. Primeiro selecione a variável de local de origem, que é FirstLocation .

Código:

 Sub VBA_Copy2 () Dim FirstLocation como string Dim SecondLocation como string FirstLocation = "D: \ Test1 \ Hello.xlsx" SecondLocation = "D: \ Arquivo VPB \ Arquivos de abril \ Arquivos de abril \ Hello.xlsx" FileCopy FirstLocation End Sub 

Etapa 8: novamente, de maneira semelhante, selecione a variável do local de destino que é SecondLocation, como mostrado abaixo.

Código:

 Sub VBA_Copy2 () Dim FirstLocation como string Dim SecondLocation como string FirstLocation = "D: \ Test1 \ Hello.xlsx" SecondLocation = "D: \ Arquivo VPB \ Arquivos de abril \ Arquivos de abril \ Hello.xlsx" FileCopy FirstLocation, SecondLocation End Sub 

Etapa 9: Uma vez concluído, compilaremos o código pressionando a tecla funcional F8. E se nenhum erro for encontrado, execute o código. Veremos que o arquivo do local de origem é copiado e colado na pasta de destino, como mostrado abaixo.

Também podemos tentar um caminho de localização diferente. Para o teste, vamos considerar outro local de origem onde teremos um arquivo do word.

Como podemos ver, o arquivo não possui dados; portanto, o tamanho é exibido novamente como 0 KB.

E a pasta de destino será a pasta Local de Saída, que está na pasta Local de Entrada. Se virmos dentro do arquivo, não há dados disponíveis.

Agora, substituiremos a origem e o destino nas variáveis ​​FirstLocation e Second Location, respectivamente, seguidas pelo nome do arquivo e sua extensão.

Código:

 Sub VBA_Copy2 () Dim FirstLocation como string Dim SecondLocation como string FirstLocation = "D: \ Arquivo VPB \ Arquivos de abril \ Novo caso de teste \ Excel Excel.docx" SecondLocation = "D: \ arquivo VPB \ arquivos de abril \ local final \ caso de teste. docx "FileCopy FirstLocation, SecondLocation End Sub 

Agora execute o código.

Veremos que o arquivo do Word de teste agora é copiado da pasta Local de entrada para a pasta Local de saída com o mesmo tamanho que é 0 KB.

Prós do FileCopy no VBA

  • Pode ser usado para copiar mais de 1 arquivo de uma só vez.
  • Demora um tempo semelhante para 10 arquivos, assim como para copiar um arquivo.
  • Podemos usar qualquer tipo de arquivo de extensão que desejamos copiar.

Coisas para lembrar

  • Sempre coloque o nome do arquivo e sua extensão no final do nome do local.
  • Cite os links de destino e local de origem em vírgulas invertidas.
  • Depois de feito, salve o código em Macro para permitir que o Excel use e retenha o código para fins futuros.
  • Sempre conceda a permissão para codificar para que ele possa copiar o arquivo do local de origem e colá-lo no local de destino.

Artigos recomendados

Este é um guia para o FileCopy no VBA. Aqui discutimos como copiar um arquivo do Excel usando o código VBA, juntamente com exemplos práticos e modelo de excel para download. Você também pode consultar nossos outros artigos sugeridos -

  1. Trabalhando com o VBA Active Cell
  2. Excluindo uma linha no VBA
  3. Como usar o Excel VBA Transpose?
  4. Como corrigir o erro 1004 usando o VBA

Categoria: