Como copiar uma linha no Excel VBA

Usar o VBA para programar o Excel não é tão popular quanto antes. No entanto, ainda há muitos programadores que preferem isso ao trabalhar com o Excel. Se você é uma dessas pessoas, este artigo é para você.

Copiando uma linha no Excel VBA é o tipo de coisa para a qual o Excel VBA é realmente útil. Por exemplo, convém ter um arquivo de todos os seus recibos com data, conta, categoria, provedor, produto / serviço e custo entraram em uma linha de cada vez, à medida que ocorrem - uma instância de evolução contábil em vez de contabilidade estática. Para fazer isso, você precisa copiar uma linha de uma planilha para outra.

Um exemplo de programa VBA do Excel que copia uma linha de uma planilha para outra - usando apenas três colunas para simplificar - contém:

  • Uma coluna alfa para texto
  • Uma coluna numérica - uma soma automática é criada na planilha de destino
  • Uma coluna de data - a data e hora atuais são preenchidas automaticamente

Considerações para escrever código VBA do Excel

Para disparar um evento que copia a linha, siga o padrão - um controle de formulário de Botão. No Excel, clique em Inserir na guia Desenvolvedor. Em seguida, selecione o controle de formulário Botão e desenhe o botão onde desejar. O Excel exibe automaticamente uma caixa de diálogo para lhe dar a chance de selecionar um

instagram viewer
macro acionado pelo evento click do botão ou para criar um novo.

Existem várias maneiras de encontrar a última linha na planilha de destino para que o programa possa copiar uma linha na parte inferior. Este exemplo escolhe manter o número da última linha na planilha. Para manter o número da última linha, você deve armazenar esse número em algum lugar. Isso pode ser um problema porque o usuário pode alterar ou excluir o número. Para contornar isso, coloque-o na célula diretamente abaixo do botão do formulário. Dessa forma, é inacessível para o usuário. (A coisa mais fácil a fazer é inserir um valor na célula e mover o botão sobre ele.)

Código para copiar uma linha usando o Excel VBA

Sub Add_The_Line () Dim currentRow como folhas inteiras ("Plan1"). Selecione currentRow = Range ("C2"). Linhas de valor (7). Selecione Seleção. Copiar folhas ("Sheet2"). Selecione Linhas (currentRow). Selecione ActiveSheet. Colar Dim theDate As Date theDate = Now () Cells (currentRow, 4) .Value = CStr (theDate) Cells (currentRow + 1, 3) .Activate Dim rTotalCell As Range Defina rTotalCell = _ Sheets ("Sheet2"). Cells ( Linhas. Contagem, "C"). Fim (xlUp) .Offset (1, 0) rTotalCell = WorksheetFunction. Soma _ (Intervalo ("C7", rTotalCell. Deslocamento (-1, 0))) Folhas ("Plan1"). Intervalo ("C2"). Valor = currentRow + 1 End Sub 

Esse código usa xlUp, um "número mágico" ou, tecnicamente, uma constante enumerada, que é reconhecida pelo método End. O deslocamento (1,0) simplesmente move uma linha para cima na mesma coluna, portanto o efeito líquido é selecionar a última célula na coluna C.

Em palavras, a declaração diz:

  • Vá para a última célula na coluna C (equivalente a End + Seta para baixo).
  • Em seguida, volte para a última célula não utilizada (equivalente à seta final + seta para cima).
  • Então, suba mais uma célula.

A última instrução atualiza o local da última linha.

O VBA provavelmente é mais difícil que o VB.NET porque você precisa conhecer os objetos VBA do VB e do Excel. O uso do xlUP é um bom exemplo do tipo de conhecimento especializado essencial para a capacidade de escrever macros VBA sem procurar três coisas diferentes para cada instrução que você codifica. A Microsoft fez grandes progressos na atualização do editor do Visual Studio para ajudá-lo a descobrir a sintaxe correta, mas o editor do VBA não mudou muito.

instagram story viewer