Como dividir uma tabela grande em várias tabelas menores no Excel?
Se você tem uma grande tabela no Excel com várias colunas e centenas ou milhares de linhas, pode querer dividi-la em tabelas menores e mais gerenciáveis. Por exemplo, pode ser necessário separar os dados com base em valores específicos de coluna ou dividi-los em partes com um número fixo de linhas. Este tutorial fornece métodos passo a passo para realizar essa tarefa de forma eficiente.
Tabela Principal | Dividir tabela em várias tabelas por valor da coluna | Dividir tabela em várias tabelas por contagem de linhas | |
![]() | ![]() | ![]() | ![]() |
Dividir uma tabela grande em várias tabelas com base no valor da coluna usando código VBA
Dividir uma tabela grande em várias tabelas com base no valor da coluna usando código VBA
Para dividir esta grande tabela em várias tabelas com base em um valor específico da coluna, o seguinte código VBA pode ajudá-lo. Por favor, siga estas etapas:
1. Pressione e segure as teclas "ALT" + "F11" para abrir a janela "Microsoft Visual Basic for Applications".
2. Clique em "Inserir" > "Módulo", e cole o seguinte código na janela "Módulo".
Código VBA: Divida uma tabela grande em várias tabelas pela coluna-chave:
Sub Splitdatabycol()
'by Extendoffice
Dim lr As Long
Dim ws As Worksheet
Dim vcol, i As Integer
Dim icol As Long
Dim myarr As Variant
Dim title As String
Dim titlerow As Integer
Dim xTRg As Range
Dim xVRg As Range
Dim xWSTRg As Worksheet
On Error Resume Next
Set xTRg = Application.InputBox("Please select the header rows:", "Kutools for Excel", "", Type:=8)
If TypeName(xTRg) = "Nothing" Then Exit Sub
Set xVRg = Application.InputBox("Please select the column you want to split data based on:", "Kutools for Excel", "", Type:=8)
If TypeName(xVRg) = "Nothing" Then Exit Sub
vcol = xVRg.Column
Set ws = xTRg.Worksheet
lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
title = xTRg.AddressLocal
titlerow = xTRg.Cells(1).Row
icol = ws.Columns.Count
ws.Cells(1, icol) = "Unique"
Application.DisplayAlerts = False
If Not Evaluate("=ISREF('xTRgWs_Sheet!A1')") Then
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
Else
Sheets("xTRgWs_Sheet").Delete
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
End If
Set xWSTRg = Sheets("xTRgWs_Sheet")
xTRg.Copy
xWSTRg.Paste Destination:=xWSTRg.Range("A1")
ws.Activate
For i = (titlerow + xTRg.Rows.Count) To lr
On Error Resume Next
If ws.Cells(i, vcol) <> "" And Application.WorksheetFunction.Match(ws.Cells(i, vcol), ws.Columns(icol), 0) = 0 Then
ws.Cells(ws.Rows.Count, icol).End(xlUp).Offset(1) = ws.Cells(i, vcol)
End If
Next
myarr = Application.WorksheetFunction.Transpose(ws.Columns(icol).SpecialCells(xlCellTypeConstants))
ws.Columns(icol).Clear
For i = 2 To UBound(myarr)
ws.Range(title).AutoFilter field:=vcol, Criteria1:=myarr(i) & ""
If Not Evaluate("=ISREF('" & myarr(i) & "'!A1)") Then
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = myarr(i) & ""
Else
Sheets(myarr(i) & "").Move after:=Worksheets(Worksheets.Count)
End If
xWSTRg.Range(title).Copy
Sheets(myarr(i) & "").Paste Destination:=Sheets(myarr(i) & "").Range("A1")
ws.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").Range("A" & (titlerow + xTRg.Rows.Count))
Sheets(myarr(i) & "").Columns.AutoFit
Next
xWSTRg.Delete
ws.AutoFilterMode = False
ws.Activate
Application.DisplayAlerts = True
End Sub
3. Após colar o código, pressione a tecla "F5" para executá-lo, e uma caixa de diálogo será exibida, solicitando que você selecione a linha de cabeçalho dos seus dados, veja a captura de tela:
4. Em seguida, clique em "OK", e outra caixa de diálogo aparecerá, pedindo para selecionar os dados da coluna que deseja usar para dividir a tabela, veja a captura de tela:
5. Clique em "OK". A tabela grande agora foi dividida em várias planilhas com base nos valores das colunas, com as novas planilhas localizadas após a planilha principal. E as novas planilhas são nomeadas com o valor da coluna. Veja a captura de tela:
Divida uma tabela grande em várias tabelas com base em um número específico de linhas usando código VBA
Se você precisa dividir a tabela em várias tabelas com base no número de linhas, o seguinte código VBA pode ajudá-lo.
1. Pressione e segure as teclas "ALT" + "F11" para abrir a janela "Microsoft Visual Basic for Applications".
2. Clique em "Inserir" > "Módulo", e cole o seguinte código na janela "Módulo".
Código VBA: Divida uma tabela grande em várias tabelas pelo número de linhas:
Sub Splitdatabyrows()
'Updated by Extendoffice
Dim WorkRng As Range
Dim xRow As Range
Dim SplitRow As Integer
Dim xWs As Worksheet
Dim xTRg As Range
Dim xNTRg As Range
Dim xIER
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set xTRg = Application.InputBox("Please select the header row:", xTitleId, "", Type:=8)
If TypeName(xTRg) = "Nothing" Then Exit Sub
Set WorkRng = Application.InputBox("Please select the data range(exclude the header row):", xTitleId, WorkRng.Address, Type:=8)
If TypeName(WorkRng) = "Nothing" Then Exit Sub
SplitRow = Application.InputBox("Split Row Num", xTitleId, Type:=1)
If SplitRow = 0 Then Exit Sub
Set xWs = WorkRng.Parent
Set xRow = WorkRng.Rows(1)
xIER = WorkRng.Rows.Count
xIER = WorkRng.Row + xIER - 1
Application.ScreenUpdating = False
For i = 1 To WorkRng.Rows.Count Step SplitRow
resizeCount = SplitRow
If (xIER - xRow.Row + 1) < SplitRow Then
resizeCount = (xIER - xRow.Row + 1)
End If
xRow.Resize(resizeCount).Copy
Set xWs = Application.Worksheets.Add(after:=Application.Worksheets(Application.Worksheets.Count))
If xIER > (xRow.Row + SplitRow - 1) Then
xWs.Name = xRow.Row & " - " & (xRow.Row + SplitRow - 1)
ElseIf xIER = xRow.Row Then
xWs.Name = xRow.Row
Else
xWs.Name = xRow.Row & " - " & xIER
End If
Application.ActiveSheet.Range("A1").PasteSpecial
Set xNTRg = Application.ActiveSheet.Range("A1")
xTRg.Copy
xNTRg.Insert
Set xRow = xRow.Offset(SplitRow)
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
3. Em seguida, pressione a tecla "F5", na caixa de diálogo que aparecer, selecione a linha de cabeçalho, veja a captura de tela:
4. Em seguida, clique em "OK", e na segunda caixa de diálogo, selecione o intervalo de dados que deseja dividir pelo número de linhas, veja a captura de tela:
5. Depois disso, continue clicando no botão "OK", na terceira caixa de diálogo, insira o número de linhas que deseja usar para dividir, veja a captura de tela:
6. Em seguida, clique no botão "OK", a tabela principal foi dividida em várias planilhas com base no número de linhas, conforme mostrado na captura de tela abaixo:
Divida uma tabela grande em várias tabelas com base no valor da coluna ou número de linhas com Kutools para Excel
Os códigos acima podem ser difíceis para a maioria dos usuários; aqui, vou apresentar um recurso incrível - "Dividir Dados" do "Kutools para Excel". Com esta ferramenta, você pode dividir uma tabela grande em várias tabelas pela coluna-chave ou número de linhas rapidamente e facilmente.
1. Selecione o intervalo de dados que deseja dividir e, em seguida, clique em "Kutools Plus" > "Dividir Dados", veja a captura de tela:
2. Na caixa de diálogo "Dividir Dados em Múltiplas Planilhas", especifique as configurações conforme sua necessidade:
(1.) Selecione "Especificar coluna" ou "Valor fixo" na seção "Critério de Divisão", conforme necessário;
(2.) Especifique o nome das novas planilhas na lista suspensa "Regra", você também pode adicionar um "Prefixo" ou "Sufixo" aos nomes das planilhas.
3. Em seguida, clique no botão "Ok", e agora, a tabela grande foi dividida em várias pequenas tabelas em uma nova pasta de trabalho. Veja as capturas de tela:
Divida a tabela em várias tabelas por valor da coluna | Divida a tabela em várias tabelas por contagem de linhas |
![]() | ![]() |
Kutools para Excel - Potencialize o Excel com mais de 300 ferramentas essenciais. Aproveite recursos de IA permanentemente gratuitos! Obtenha Agora
Mais artigos relacionados:
- Divida uma Pasta de Trabalho em Arquivos do Excel Separados no Excel
- Você pode precisar dividir uma grande pasta de trabalho em arquivos do Excel separados, salvando cada planilha da pasta como um arquivo individual do Excel. Por exemplo, você pode dividir uma pasta de trabalho em vários arquivos individuais do Excel e depois entregar cada arquivo a uma pessoa diferente para manipulá-lo. Fazendo isso, você pode fazer com que certas pessoas manipulem dados específicos e manter seus dados seguros. Este artigo introduzirá maneiras de dividir uma grande pasta de trabalho em arquivos do Excel separados com base em cada planilha.
- Divida Nome Completo em Primeiro e Último Nome no Excel
- Suponha que você tenha uma lista de nomes como mostra a primeira captura de tela abaixo em uma única coluna, e você precisa dividir o nome completo nas colunas de primeiro nome, nome do meio e sobrenome, conforme mostrado na captura de tela a seguir. Aqui estão alguns métodos engenhosos para ajudá-lo a resolver esse problema.
- Divida uma Coluna Longa em Múltiplas Colunas no Excel
- Se você tem uma longa coluna de dados no Excel, que será inconveniente ao visualizá-los. Mas agora, se você puder dividir essa longa lista em várias colunas no Excel, isso facilitará a visualização.
- Divida Palavra ou Número em Células Separadas no Excel
- Se você tem uma lista de números ou palavras em uma planilha, e agora precisa dividir o conteúdo da célula em letras em diferentes células, conforme mostrado na captura de tela a seguir, como você pode lidar com essa tarefa no Excel?
- Divida uma Lista Longa em Grupos Iguais no Excel
- Se você tem uma longa lista de dados que precisa ser dividida em múltiplos grupos iguais, conforme mostrado na captura de tela a seguir, como você poderia lidar com essa tarefa rapidamente e facilmente no Excel?
Melhores Ferramentas de Produtividade para Office
Potencialize suas habilidades no Excel com o Kutools para Excel e experimente uma eficiência sem igual. O Kutools para Excel oferece mais de300 recursos avançados para aumentar sua produtividade e economizar tempo. Clique aqui para obter o recurso que você mais precisa...
O Office Tab traz interface com abas para o Office e facilita muito o seu trabalho
- Habilite a edição e leitura com abas no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novas abas na mesma janela, em vez de abrir novas janelas.
- Aumente sua produtividade em50% e reduza centenas de cliques do mouse todos os dias!