如何在 Excel 中為每一行創建新工作表?
假設您在 A 列中有一個學生姓名的表格,並且希望為每位學生創建一個單獨的工作表,其中包含他們的獨特數據。或者,您可能只是想為表格中的每一行創建一個新的工作表,而不考慮任何特定列中的數據。本指南將向您展示兩種實現此目的的方法。
使用 VBA 程式碼為每一行創建新工作表
使用 Kutools for Excel 的分割數據工具為每一行創建新工作表
使用 VBA 程式碼為每一行創建新工作表
使用以下程式碼,您可以根據列值創建新工作表,或僅為 Excel 中的每一行創建新工作表。
1. 同時按下「Alt」+「F11」鍵以打開「Microsoft Visual Basic for Applications」窗口。
2. 在「Microsoft Visual Basic for Applications」窗口中,點擊「插入」>「模組」。然後將以下程式碼粘貼到「模組」窗口中。
VBA 程式碼:根據列為每一行創建新工作表
Sub parse_data()
'Update by Extendoffice 2018/3/2
Dim xRCount As Long
Dim xSht As Worksheet
Dim xNSht As Worksheet
Dim I As Long
Dim xTRrow As Integer
Dim xCol As New Collection
Dim xTitle As String
Dim xSUpdate As Boolean
Set xSht = ActiveSheet
On Error Resume Next
xRCount = xSht.Cells(xSht.Rows.Count, 1).End(xlUp).Row
xTitle = "A1:C1"
xTRrow = xSht.Range(xTitle).Cells(1).Row
For I = 2 To xRCount
Call xCol.Add(xSht.Cells(I, 1).Text, xSht.Cells(I, 1).Text)
Next
xSUpdate = Application.ScreenUpdating
Application.ScreenUpdating = False
For I = 1 To xCol.Count
Call xSht.Range(xTitle).AutoFilter(1, CStr(xCol.Item(I)))
Set xNSht = Nothing
Set xNSht = Worksheets(CStr(xCol.Item(I)))
If xNSht Is Nothing Then
Set xNSht = Worksheets.Add(, Sheets(Sheets.Count))
xNSht.Name = CStr(xCol.Item(I))
Else
xNSht.Move , Sheets(Sheets.Count)
End If
xSht.Range("A" & xTRrow & ":A" & xRCount).EntireRow.Copy xNSht.Range("A1")
xNSht.Columns.AutoFit
Next
xSht.AutoFilterMode = False
xSht.Activate
Application.ScreenUpdating = xSUpdate
End Sub
注意:A1:C1 是表格的標題範圍。您可以根據需要進行更改。
3. 按下「F5」鍵運行程式碼,然後會在當前工作簿的所有工作表之後創建新工作表,如下截圖所示:
如果您想直接為每一行創建新工作表而無需考慮列值,可以使用以下程式碼。
VBA 程式碼:直接為每一行創建新工作表
Sub RowToSheet()
Dim xRow As Long
Dim I As Long
With ActiveSheet
xRow = .Range("A" & Rows.Count).End(xlUp).Row
For I = 1 To xRow
Worksheets.Add(, Sheets(Sheets.Count)).Name = "Row " & I
.Rows(I).Copy Sheets("Row " & I).Range("A1")
Next I
End With
End Sub
運行程式碼後,活動工作表中的每一行都將被放置在一個新工作表中。
注意:標題行也將通過此 VBA 程式碼放置在新工作表中。
使用 Kutools for Excel 的分割數據工具為每一行創建新工作表
實際上,上述方法複雜且難以理解。在本節中,我們介紹了「Kutools for Excel」的「分割數據」工具。
1. 選擇需要用來創建新工作表的表格,並點擊「Kutools Plus」>「分割數據」。請參見截圖:
2. 在「分割數據至多個工作表」對話框中,請執行以下操作。
A. 基於列值創建新工作表:
B. 直接為每一行創建新工作表:
創建了一個包含所有新工作表的新工作簿。請參見下方截圖。
基於列值為每一行創建新工作表:
不考慮列值為每一行創建新工作表:
Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取
演示:使用 Kutools for 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%,每天為您減少數百次鼠標點擊!