Skip to main content

如何在 Excel 中為每一行創建新工作表?

Author: Siluvia Last Modified: 2025-05-12

假設您在 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」鍵運行程式碼,然後會在當前工作簿的所有工作表之後創建新工作表,如下截圖所示:

A screenshot showing a new workbook with sheets created from each row based on column value

如果您想直接為每一行創建新工作表而無需考慮列值,可以使用以下程式碼。

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」的「分割數據」工具。

Kutools for Excel 提供超過 300 種進階功能,簡化複雜任務,提升創造力與效率。 結合 AI 能力,Kutools 能夠精準自動化任務,讓數據管理變得輕而易舉。Kutools for Excel 的詳細資訊...免費試用...

1. 選擇需要用來創建新工作表的表格,並點擊「Kutools Plus」>「分割數據」。請參見截圖:

A screenshot of the 'Split Data' option under the Kutools Plus tab in Excel

2. 在「分割數據至多個工作表」對話框中,請執行以下操作。

A. 基於列值創建新工作表:

1). 請選擇「指定列」選項,並在下拉列表中指定要基於其分割數據的列;
2). 如果您想用列值命名工作表,請在「規則」下拉列表中選擇「指定列的值」;
3). 點擊「確定」按鈕。請參見截圖:

A screenshot of the 'Split Data into Multiple Worksheets' dialog box with settings for splitting by column value

B. 直接為每一行創建新工作表:

1). 選擇「固定值」選項,在框中輸入數字「1」;
2). 從「規則」下拉列表中選擇「設置的行數」;
3). 點擊「確定」按鈕。請參見截圖:

A screenshot of the 'Split Data into Multiple Worksheets' dialog box with settings for splitting by row

創建了一個包含所有新工作表的新工作簿。請參見下方截圖。

基於列值為每一行創建新工作表:

A screenshot showing a new workbook with sheets created from each row based on column value

不考慮列值為每一行創建新工作表:

A screenshot showing a new workbook with sheets created from each row without considering the column value

Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取

演示:使用 Kutools for Excel 的分割數據工具為每一行創建新工作表

 
Kutools for Excel:超過 300 種實用工具任您使用!永久免費享受AI功能!立即下載!

最佳辦公效率工具

🤖 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%,每天為您減少數百次鼠標點擊!