跳到主要内容
 

如何在Excel中为每一行创建新工作表?

添加一名作者 最后修改时间:2022-03-31

假设您在 A 列中有一个包含所有学生姓名的分数表。现在您要根据 A 列中的这些姓名创建新工作表,并使每张工作表包含唯一的学生数据。 或者只为表中的每一行创建新工作表,而不考虑 A 列中的名称。在本视频中,您将获得实现它的方法。

使用VBA代码为每一行创建新的工作表
使用 Kutools for Excel 的分割数据实用程序为每行创建新工作表


使用VBA代码为每一行创建新的工作表

使用以下代码,您可以基于列值创建新的工作表,或者只为Excel中的每一行创建新的工作表。

1。 按 其他 + F11 同时打开 Microsoft Visual Basic应用程序 窗口。

2.在 Microsoft Visual Basic应用程序 窗口中,单击 插页 > 模块。 然后将以下代码粘贴到 模块 窗口。

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.

申请前 Kutools for Excel首先下载并安装.

1.选择您需要用于创建新表的表,然后单击 Kutools 加> 吐出数据。 看截图:

2.在 将数据拆分为多个工作表 对话框,请执行以下操作。

A.基于列值创建新表:

1)。 请选择 特定栏 选项,然后在下拉列表中指定要用于拆分数据的列;
2)。 如果要使用列值命名工作表,请选择 列的值 ,在 规则 下拉列表;
3)。 点击 OK 按钮。 看截图:

B.为每行直接创建新的工作表:

1)。 选择 固定行 选项,输入数字 1 放进盒子里
2)。 选择 行号 来自 规则 下拉列表;
3)。 点击 OK 按钮。 看截图:

将创建一个新工作簿,其中包含所有新工作表。 请参见下面的屏幕截图。

根据列值为每一行创建新的工作表:

在不考虑列值的情况下为每一行创建新的工作表:

  如果您想免费试用(30天)此实用程序, 请点击下载,然后按照上述步骤进行操作。

使用 Kutools for Excel 的分割数据实用程序为每行创建新工作表

最佳办公生产力工具

🤖 Kutools 人工智能助手:基于以下内容彻底改变数据分析: 智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数...
热门特色: 查找、突出显示或识别重复项   |  删除空白行   |  合并列或单元格而不丢失数据   |   不使用公式进行四舍五入 ...
超级查询: 多条件VLookup    多值VLookup  |   跨多个工作表的 VLookup   |   模糊查询 ....
高级下拉列表: 快速创建下拉列表   |  依赖下拉列表   |  多选下拉列表 ....
列管理器: 添加特定数量的列  |  移动列  |  切换隐藏列的可见性状态  |  比较范围和列 ...
特色功能: 网格焦点   |  设计图   |   大方程式酒吧    工作簿和工作表管理器   |  资源库 (自动文本)   |  日期选择器   |  合并工作表   |  加密/解密单元格    按列表发送电子邮件   |  超级筛选   |   特殊过滤器 (过滤粗体/斜体/删除线...)...
前 15 个工具集12 文本 工具 (添加文本, 删除字符,...)   |   50+ 图表 类型 (甘特图,...)   |   40+ 实用 公式 (根据生日计算年龄,...)   |   19 插入 工具 (插入二维码, 从路径插入图片,...)   |   12 转化 工具 (小写金额转大写, 货币兑换,...)   |   7 合并与拆分 工具 (高级组合行, 分裂细胞,...)   |   ... 和更多

使用 Kutools for Excel 增强您的 Excel 技能,体验前所未有的效率。 Kutools for Excel 提供了 300 多种高级功能来提高生产力并节省时间。  单击此处获取您最需要的功能...


Office Tab 为 Office 带来选项卡式界面,让您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!