Вот проблема: данные на одном листе, и мне нужно их классифицировать. Я пытаюсь go сделать это следующим образом:
Я хотел сначала использовать этот код для копирования и вставки в соответствующий лист, но единственное, что он делает, это вставляет все в TargetK и TargetL.
Sub Button6_Click()
Dim c As Range
Dim j As Long
Dim Source As Worksheet
Dim TargetA As Worksheet
Dim TargetB As Worksheet
Dim TargetC As Worksheet
Dim TargetD As Worksheet
Dim TargetE As Worksheet
Dim TargetF As Worksheet
Dim TargetG As Worksheet
Dim TargetH As Worksheet
Dim TargetI As Worksheet
Dim TargetJ As Worksheet
Dim TargetK As Worksheet
Dim TargetL As Worksheet
Dim i As Long
Set Source = ActiveWorkbook.Worksheets("Data") 'Where it is copying from
Set TargetA = ActiveWorkbook.Worksheets("Table1Dyn") 'Where it is copying to
Set TargetB = ActiveWorkbook.Worksheets("Table2Dyn")
Set TargetC = ActiveWorkbook.Worksheets("Table1Elec")
Set TargetD = ActiveWorkbook.Worksheets("Table2Elec")
Set TargetE = ActiveWorkbook.Worksheets("Table1Hab")
Set TargetF = ActiveWorkbook.Worksheets("Table2Hab")
Set TargetG = ActiveWorkbook.Worksheets("Table1HVAC")
Set TargetH = ActiveWorkbook.Worksheets("Table2HVAC")
Set TargetI = ActiveWorkbook.Worksheets("Table1ITS")
Set TargetJ = ActiveWorkbook.Worksheets("Table2ITS")
Set TargetK = ActiveWorkbook.Worksheets("Table1MISC")
Set TargetL = ActiveWorkbook.Worksheets("Table2MISC")
j = 3
For Each c In Source.Range("K3:K3000")
If c = "03 - Dynamique" Then
Source.Rows(c.Row).Copy TargetA.Rows(j)
Source.Rows(c.Row).Copy TargetB.Rows(j)
j = j + 1
Else
If c = "*04 - Electrique*" Then
Source.Rows(c.Row).Copy TargetC.Rows(j)
Source.Rows(c.Row).Copy TargetD.Rows(j)
j = j + 1
Else
If c = "*06 - Habillage*" Then
Source.Rows(c.Row).Copy TargetE.Rows(j)
Source.Rows(c.Row).Copy TargetF.Rows(j)
j = j + 1
Else
If c = "*07 - HVAC*" Then
Source.Rows(c.Row).Copy TargetG.Rows(j)
Source.Rows(c.Row).Copy TargetH.Rows(j)
j = j + 1
Else
If c = "*08 - ITS*" Then
Source.Rows(c.Row).Copy TargetI.Rows(j)
Source.Rows(c.Row).Copy TargetJ.Rows(j)
j = j + 1
Else
Source.Rows(c.Row).Copy TargetK.Rows(j)
Source.Rows(c.Row).Copy TargetL.Rows(j)
j = j + 1
End If
End If
End If
End If
End If
Next c
End Sub
После этого я хотел go на каждом листе и удалить строки и столбцы, которые там не принадлежат. Должен быть более эффективный способ сделать это, но я не могу понять это.