如何在Excel中將大型表格分割成多個小型表格?
如果您有一個包含多列和數百或數千行的大型Excel表格,您可能希望將其拆分為更小、更易於管理的表格。例如,您可能需要根據特定列值來分離數據,或者將其分成固定行數的小塊。本教程提供了逐步的方法來高效完成此任務。
主表格 | 按列值將表格分割成多個表格 | 按行數將表格分割成多個表格 | |
![]() | ![]() | ![]() | ![]() |
使用Kutools for Excel根據列值或行數將大型表格分割成多個表格
使用VBA代碼根據列值將大型表格分割成多個表格
要根據特定列值將這個大表格分割成多個表格,以下VBA代碼可以幫助您。請按照以下步驟操作:
1. 按住「ALT」+「F11」鍵以打開「Microsoft Visual Basic for Applications」窗口。
2. 點擊「插入」>「模組」,然後在「模組」窗口中粘貼以下代碼。
VBA代碼:根據關鍵列將大型表格分割成多個表格:
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. 粘貼代碼後,按下「F5」鍵運行此代碼,會彈出一個提示框,請從您的數據中選擇標題行,參見截圖:
4. 然後,點擊「確定」,另一個對話框會彈出,請選擇您希望根據其分割表格的列數據,參見截圖:
5. 點擊「確定」。現在,大表格已經根據列值被分割成多個工作表,新工作表位於主工作表之後。並且新工作表以列值命名。參見截圖:
使用VBA代碼根據特定行數將大型表格分割成多個表格
如果您需要根據行數將表格分割成多個表格,以下VBA代碼可以幫助您。
1. 按住「ALT」+「F11」鍵以打開「Microsoft Visual Basic for Applications」窗口。
2. 點擊「插入」>「模組」,然後在「模組」窗口中粘貼以下代碼。
VBA代碼:根據行數將大型表格分割成多個表格:
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. 然後,按下「F5」鍵,在彈出的對話框中選擇標題行,參見截圖:
4. 然後,點擊「確定」,在第二個提示框中,選擇您希望根據行數分割的數據範圍,參見截圖:
5. 接著,繼續點擊「確定」按鈕,在第三個提示框中輸入您希望根據分割的行數,參見截圖:
6. 然後,點擊「確定」按鈕,主表格已經根據行數被分割成多個工作表,如下方截圖所示:
使用Kutools for Excel根據列值或行數將大型表格分割成多個表格
上述代碼對於大多數用戶來說可能比較困難,這裡我將介紹一個驚人的功能——「Kutools for Excel」中的「分割數據」。使用這個工具,您可以快速輕鬆地根據關鍵列或行數將大型表格分割成多個表格。
1. 選擇您希望分割的數據範圍,然後點擊「Kutools Plus」>「分割數據」,參見截圖:
2. 在「將數據分割到多個工作表」對話框中,根據您的需求指定設置:
(1.) 根據需要從「分割依據」部分選擇「指定列」或「固定行」;
(2.) 從「規則」下拉列表中指定新工作表名稱,您還可以添加「前綴」或「後綴」到工作表名稱中。
3. 然後,點擊「確定」按鈕,現在,大表格已經在新工作簿中被分割成多個小表格。參見截圖:
按列值將表格分割成多個表格 | 按行數將表格分割成多個表格 |
![]() | ![]() |
Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取
更多相關文章:
- 在Excel中將工作簿分割成單獨的Excel文件
- 您可能需要將大型工作簿分割成單獨的Excel文件,並將工作簿中的每個工作表保存為單獨的Excel文件。例如,您可以將工作簿分割成多個單獨的Excel文件,然後將每個文件交付給不同的人處理。這樣做,您可以讓某些人處理特定數據,並確保您的數據安全。本文將介紹如何根據每個工作表將大型工作簿分割成單獨的Excel文件。
- 在Excel中將全名分割成名字和姓氏
- 假設您有一份如第一張截圖所示的名字清單,並且您需要將全名分割成名字列、中間名列和姓氏列,如下面的截圖所示。這裡有一些巧妙的方法可以幫助您解決這個問題。
- 在Excel中將長列分割成多列
- 如果您在Excel中有一個很長的列數據,查看起來會很麻煩。但是現在如果能將這樣的長列表分割成多列,將使查看變得方便。
- 在Excel中將單詞或數字分割成單獨的儲存格
- 如果您在工作表中有一系列數字或單詞,現在您需要將儲存格內容分割成不同的字母,如以下截圖所示,您該如何在Excel中處理這項工作呢?
- 在Excel中將長列表分割成相等的組
- 如果您有一個需要分割成多個相等組的長列表,如以下截圖所示,您該如何在Excel中快速輕鬆地處理這項任務呢?
最佳辦公效率工具
🤖 | Kutools AI 助手:基於智能執行方式革新數據分析:智能執行 | 生成代碼 | 創建自訂公式 | 分析數據並生成圖表 | 調用 Kutools 函數… |
熱門功能:查找、標記重複值或識別重複項 | 刪除空行 | 合併列或單元格而不丟失數據 | 四捨五入無需公式 ... | |
高級 LOOKUP: 多條件 VLookup | 多值 VLookup | 多表查找 | 模糊查找 .... | |
高級下拉列表:快速創建下拉列表 | 依賴下拉列表 | 多選下拉列表 .... | |
列管理器: 添加特定數量的列 | 移動列 | 切換隱藏列的可見狀態 | 比較區域和列 ... | |
特色功能:網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿與工作表管理器 | 資源庫(自動文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按列表發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/斜體/刪除線...) ... | |
頂級 15 種工具集: 12 個文本工具(添加文本、刪除特定字符、...) | 50+ 圖表 類型(甘特圖、...) | 40+ 實用 公式(基於生日計算年齡、...) | 19 個插入工具(插入QR碼、根據路徑插入圖片、...) | 12 個轉換工具(金額轉大寫、匯率轉換、...) | 7 個合併與分割工具(高級合併行、分割儲存格、...) | ... 還有更多 |
使用 Kutools for Excel 提升您的 Excel 技巧,體驗前所未有的高效。 Kutools for Excel 提供超過 300 種高級功能來提高生產力並節省時間。 點擊這裡獲取您最需要的功能...
Office Tab 將標籤式界面帶到 Office,讓您的工作更加輕鬆
- 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中啟用標籤式編輯和閱讀。
- 在同一窗口的新標籤中打開和創建多個文檔,而不是在新窗口中。
- 將您的生產力提高 50%,每天為您減少數百次鼠標點擊!