Você já precisou alguma vez copiar e colar no VBA? Existem algumas formas de se fazer isso e nessa publicação vamos comentar sobre elas!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!
Clique aqui para baixar a planilha utilizada nessa publicação!
É o método de atribuição de valores, em que atribuímos o valor que está inserido em uma célula do Excel a outra célula, ou seja, a segunda recebe o conteúdo da primeira.
Porque ele é mais rápido que o método tradicional de copiar e colar, porque só faz a transferência dos valores, e nada mais. O método tradicional de copiar e colar carrega valores, formatação, fórmulas, tudo (somado) que estiver naquelas células.
Primeiramente temos que entender como fazer o método tradicional, para conhecê-lo e compará-lo com o método mais eficiente.
Vamos inicialmente abrir o VBA, apertando Alt+F11 (ou Alt+Fn+F11), e começar um novo módulo em Inserir > Módulo para que possamos escrever nosso código.
Após abrir o ambiente do VBA, criaremos um novo módulo em branco, em que vamos escrever o nosso código (nossa sub copia_cola). Podemos chamá-la de qualquer nome.
No nosso exemplo do vídeo temos 4 quadros com informações (Info 1 até Info 4 em cada quadro) a serem copiadas para outros quadros, na mesma aba (primeira) e para outras (segunda e terceira).
A seguir temos o código criado para copiar as informações da primeira aba para ela mesma, com o método tradicional. Observe:
Range("B1:B4").Copy
Range("B6").PasteSpecial
Simplesmente significa copiar o conteúdo inteiro (valor, formatação, fórmulas) do intervalo de células de B1 até B4, e colar essas informações em B6. Lembre-se que colar em B6 levará a colagem até B9, porque copiamos 4 células inteiras.
A seguir temos o código criado para copiar as informações da primeira aba para a segunda, com o método tradicional. Observe:
Sheets("Primeira Aba").Range("B1:B4").Copy
Sheets("Segunda Aba").Range("B1").PasteSpecial
Simplesmente significa copiar o conteúdo inteiro (valor, formatação, fórmulas) do intervalo de células de B1 até B4 da primeira aba, especificamente, e colar essas informações na célula B1 da segunda aba, especificamente. Lembre-se que colar em B1 levará a colagem até B4, porque copiamos 4 células inteiras.
Outro exemplo de colagem para outra aba é a colagem das informações para a terceira aba. Caso queira fazer essa operação, você apenas deve especificar a Terceira Aba no lugar da segunda, no código acima, porque colaríamos as informações na célula B1 da terceira aba também.
Vamos para o código que irá copiar as informações, mas somente os valores, para as células de interesse. Lembrando que esse procedimento é mais rápido que a cópia e colagem tradicionais no VBA.
A seguir temos o código criado para levar as informações da primeira aba para a terceira aba (apenas comentado acima).
Sheets("Terceira Aba").Range("B1:B4").Value = Sheets("Primeira Aba").Range("B1:B4").Value
Estamos fazendo uma atribuição de valores, onde o intervalo de células B1 até B4 da terceira aba do nosso arquivo receberá os valores das células de B1 até B4 da primeira aba.
Se atente para isso: tratando de um código pequeno e simples, não fará muita diferença, mas em termos de códigos grandes e complexos, fará diferença no tempo de execução do código se você optar por usar o método de atribuição no lugar do tradicional.
Ele é muito mais eficiente do que o método de colagem normal, porque, lembrando, leva apenas as informações de valores para as células de interesse.
Fique ligado na nossa série de compilação de planilhas no VBA, onde aprenderemos a juntar planilhas em uma só, e aproveite para aprender diversos conteúdos que vão ajudar a elaborar o código final ao fim da série!
Para acessar outras publicações de VBA, clique aqui!
Se você quiser aprender mais sobre VBA em um Minicurso, clique aqui!
Expert em VBA e Power BI da Hashtag Treinamentos. Auxilia no suporte aos alunos da Hashtag Treinamentos e na criação de conteúdos para os que acompanham nossos canais.