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 VBAExemplo # 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 -
- Trabalhando com o VBA Active Cell
- Excluindo uma linha no VBA
- Como usar o Excel VBA Transpose?
- Como corrigir o erro 1004 usando o VBA