如何根據Excel中的列將數據拆分為多個工作表?
假設您有一個包含大量數據的工作表,現在,您需要根據以下內容將數據拆分為多個工作表: 姓名 列(請參見下面的屏幕截圖),然後隨機輸入名稱。 也許您可以先對它們進行排序,然後將它們一個一個地複制並粘貼到其他新工作表中。 但這需要您的耐心反复複製和粘貼。 今天,我將討論解決該任務的一些快速技巧。
使用Kutools for Excel將數據基於列拆分為多個工作表
根據列使用VBA代碼將數據拆分為多個工作表
如果要基於列值快速自動地拆分數據,則以下VBA代碼是一個不錯的選擇。 請這樣做:
1。 按住 ALT + F11 鍵打開 Microsoft Visual Basic for Applications 窗口。
2。 點擊 插入 > 模塊,然後將以下代碼粘貼到“模塊窗口”中。
Sub Splitdatabycol()
'updateby 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
Dim xWS 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
Set xWS = Sheets.Add(after:=Worksheets(Worksheets.Count))
xWS.Name = myarr(i) & ""
Else
xWS.Move after:=Worksheets(Worksheets.Count)
End If
xWSTRg.Range(title).Copy
xWS.Paste Destination:=xWS.Range("A1")
ws.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy xWS.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。 然後,單擊 OK 按鈕,然後在第二個提示框中,選擇要基於其拆分的列數據,請參見屏幕截圖:
5。 然後,點擊 OK,活動工作表中的所有數據均按列值劃分為多個工作表。 拆分工作表使用拆分單元格名稱命名。 看截圖:
備註:拆分的工作表放在主工作表所在的工作簿的末尾。
使用Kutools for Excel將數據基於列拆分為多個工作表
作為一個Excel初學者,這種冗長的VBA代碼對我們來說有點困難,而且我們大多數人甚至都不知道如何根據需要修改代碼。 在這裡,我將向您介紹一個多功能工具-Excel的Kutools,其 拆分數據 該實用程序不僅可以幫助您根據列將數據拆分為多個工作表,還可以按行數拆分數據。
備註:要應用此 拆分數據,首先,您應該下載 Excel的Kutools,然後快速輕鬆地應用該功能。
安裝後 Excel的Kutools,請這樣做:
1。 選擇要拆分的數據范圍。
2。 點擊 Kutools 加 > 下載學習單 > 拆分數據,請參見屏幕截圖:
3。 在 將數據拆分為多個工作表 對話框,您需要:
1)。 選擇 特定欄 在選項 分割依據 部分,然後在下拉列表中選擇要用於拆分數據的列值。 (如果您的數據包含標題,並且您想將其插入每個新的拆分工作表中,請檢查 我的數據有標題 選項。)
2)。 然後,您可以在 新工作表名稱 部分,從中指定工作表名稱規則 規則 下拉列表中,您可以添加 字首 or 後綴 以及工作表名稱。
3)。 點擊 OK 按鈕。 看截圖:
4。 現在,數據被拆分為一個新的工作簿中的多個工作表。
使用Kutools for Excel將數據基於列拆分為多個工作表
Excel的Kutools 包括300多個便捷的Excel工具。 30天免費試用,不受限制。 立即下載免費試用版!
相關文章:
最佳辦公效率工具
Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%
- 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
- 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
- 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
- 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
- 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
- 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
- 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
- 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
- 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆
- 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
- 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
- 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!































