首页 > 解决方案 > 在 Excel 中使用 vba 创建包含数据的多个工作表

问题描述

我有多张工作表,主工作表输入有我的原始数据,我有另一张工作表有我的过滤数据。我想为 Sheet2 A 列中的每个单元格值创建一个新工作表,并让它在工作表中填充与我在 Sheet1 中的单元格值匹配的行。

我下面的代码使用单元格值创建工作表,但仅填充第一张工作表。

Sub CreateSheetForValue()

    Dim d As Range
    Dim c As Range
    Dim j As Integer
    Dim Source As Worksheet
    Dim Target As Worksheet
    Dim Condition As Worksheet

    Set Source = ActiveWorkbook.Worksheets("Sheet1")
    Set Condition = ActiveWorkbook.Worksheets("Sheet2")


    j = 2    'This will start copying data to Target sheet at row 2


      For Each d In Condition.Range("A2:A21") 'specifiy condition

      'create wroksheet for each value in condition

      Set Target = Sheets.Add(after:=ActiveSheet)
       'ActiveSheet.Name = d.Value

      Target.Name = d.Value


        Sheets("Input").Range("A1:G1").Copy Target.Range("A1")



            For Each c In Source.Range("E2:E1893")

                If Target.Name = d.Value And c.Value = d.Value Then

                    Source.Rows(c.Row).Copy Target.Rows(j)
                    j = j + 1

               End If

            Next c
        Next d
End Sub

标签: excelvbadynamic

解决方案


推荐阅读