Neste artigo, criaremos uma macro para a união de várias áreas em uma folha especificada.
Os dados brutos consistem em alguns dados de amostra, que incluem Nome e Idade. Temos duas áreas que contêm dados brutos. Queremos a união de ambas as áreas na planilha “Destino”.
Clicar no botão “Copiar Registro” fará a união dos dados de ambas as áreas, junto com a formatação.
Clicar no botão “Copiar somente valor” também fará a união dos dados das duas áreas, mas sem copiar o formato da célula.
Explicação do código
Para cada pequeno tamanho nas planilhas ("Principal"). Faixa ("A9: B13, D16: E20"). Áreas
Next Smallrng
O For Each acima é usado para fazer um loop em áreas definidas.
Defina DestRange = Sheets ("Destination"). Range ("A" & LastRow)
O código acima é usado para criar um objeto de intervalo da última célula, onde queremos copiar os dados.
Smallrng.Copy DestRange
O código acima é usado para copiar dados para o destino especificado.
Siga abaixo para o código
Option Explicit Sub CopyMultiArea () 'Declarando variáveis Dim DestRange As Range Dim Smallrng As Range Dim LastRow As Long' Loop através de áreas especificadas para cada Smallrng nas folhas ("Principal"). Range ("A9: B13, D16: E20"). Areas 'Encontrando o número da linha da última célula LastRow = Sheets ("Destination"). Range ("A1"). SpecialCells (xlLastCell) .Row + 1' Selecionando a célula onde os registros precisam ser copiados If LastRow = 2 Then Set DestRange = Sheets ("Destination"). Range ("A" & LastRow - 1) Else Set DestRange = Sheets ("Destination"). Range ("A" & LastRow) End If 'Copiando registros para o intervalo de destino especificado Smallrng.Copy DestRange Next Smallrng End Sub Sub CopyMultiAreaValues () 'Declarando variáveis Dim DestRange As Range Dim Smallrng As Range Dim LastRow As Long' Loop através de áreas especificadas para cada Smallrng nas planilhas ("Principal"). Range ("A9: B13, D16: E20" ) .Areas 'Encontrando o número da linha da última célula LastRow = Sheets ("Destination"). Range ("A1"). SpecialCells (xlLastCell) .Row + 1 With Smallrng' Selecionando a célula onde está os cabos precisam ser copiados If LastRow = 2 Then Set DestRange = Sheets ("Destination"). Range ("A" & LastRow - 1) .Resize (.Rows.Count, .Columns.Count) Else Set DestRange = Sheets (" Destino "). Range (" A "& LastRow) .Resize (.Rows.Count, .Columns.Count) End If End With 'Atribuindo os valores da origem ao destino DestRange.Value = Smallrng.Value Next Smallrng End Sub
Se você gostou deste blog, compartilhe com seus amigos no Facebook. Além disso, você pode nos seguir no Twitter e no Facebook.
Gostaríamos muito de ouvir de você, diga-nos como podemos melhorar nosso trabalho e torná-lo melhor para você. Escreva para nós no site de e-mail