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


如果您曾经使用 Excel 管理大量数据并希望有更简单的方法来组织它,那么您来对地方了。本教程将逐步向您展示如何自动为 Excel 电子表格中的每一行生成新的工作表。假设一个电子表格有数百行甚至数千行,每一行代表一个不同的数据条目。跟踪所有内容并保持清晰的视图可能很困难。通过为每一行创建新的工作表,您可以简化您的流程并轻松浏览您的数据。

无论您是商业专业人士、学生,还是只是经常处理数据的人,此视频都将帮助您最大程度地利用 Excel 体验并简化您的数据管理任务。要学习本教程,不需要事先了解 VBA 或 Excel 宏。我们将逐步引导您完成每个步骤,同时清楚地定义主题并指导您完成每个阶段。完成本教程后,您将能够使用 Excel 为每一行创建自己的独特工作表,从而在执行数据管理任务时节省时间和精力。所以让我们开始吧,通过了解如何为每一行创建新的工作表来发现 Excel 的全部潜力!

为每一行创建新的工作表

在这里,我们将首先创建一个 VBA 模块,然后运行它来完成任务。因此,让我们看看一个简单的过程,了解如何在 Excel 中为每一行创建新的工作表。

步骤 1

考虑一个 Excel 工作表,其中工作表中的数据类似于下图。

首先使用 Alt + F11 打开 VBA 应用程序。

步骤 2

然后单击“插入”并选择“模块”,然后将以下代码复制到文本框中。

插入 > 模块 > 复制。

示例

Sub parse_data()
   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 以完成任务。

注意:如果您想在不考虑单元格值的情况下创建工作表,请使用以下代码。

示例

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

结论

在本教程中,我们使用了一个简单的示例来演示如何为 Excel 中的每一行创建新的工作表以突出显示特定数据集。

更新于: 2023年7月12日

3K+ 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始
广告