У меня есть несколько листов, на основном листе ввода есть мои необработанные данные, у меня есть другой лист с моими отфильтрованными данными. Я хочу создать новый лист для каждого значения ячейки в столбце A Лист2, и он заполнит лист строками, соответствующими значению моей ячейки в Листе 1.
Мой код ниже создает листы со значениями ячеек, но заполняет только первый лист.
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