Neste artigo, criaremos uma macro para dividir os dados por um número específico de linhas.
Temos os dados brutos na planilha “RawData”. Queremos dividir esses dados em várias planilhas.
Antes de executar a macro, precisamos especificar o número de linhas necessárias em cada folha.
Explicação do código
CntRows = Cint (Sheets ("Main"). TextBox1.Value)
O código acima é usado para obter a contagem do número de folhas necessárias em uma folha.
LastRow = .Range ("A" & .Rows.Count) .End (xlUp) .Row
O código acima é usado para obter o número da linha da última célula.
Sheets.Add after: = Sheets (Sheets.Count)
O código acima é usado para adicionar uma nova planilha após a última planilha.
.Range ("A" & n) .Resize (CntRows, LastColumn) .Copy Range ("A1")
O código acima é usado para copiar o número especificado de linhas para uma nova planilha.
Siga abaixo para o código
Option Explicit Sub SplitDataToMultipleSheets () 'Declarando variáveis Dim LastRow As Long, n As Long, CntRows As Long Dim LastColumn As Integer' Obtendo a contagem do número de linhas necessárias em uma folha CntRows = CInt (Sheets ("Main"). TextBox1.Value ) 'Desativando atualizações de tela Application.ScreenUpdating = False With Sheets ("RawData")' Obtendo número da linha e número da coluna da última célula LastRow = .Range ("A" & .Rows.Count) .End (xlUp) .Row LastColumn = .Range ("A1"). SpecialCells (xlCellTypeLastCell) .Column 'Repetição de dados na planilha Para n = 1 Para LastRow Etapa CntRows' Adicionando nova planilha Sheets.Add after: = Sheets (Sheets.Count) 'Copiando dados para novos worksheet .Range ("A" & n) .Resize (CntRows, LastColumn) .Copy Range ("A1") Next n .Activate End With 'Habilitando atualizações de tela Application.ScreenUpdating = True 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