Цель состоит в том, чтобы указать два разных условия, и при выполнении одного из них вся строка из мастер-файла (эта рабочая книга) копируется и затем вставляется в новую рабочую книгу.
Я думаю, что проблемы как-то связаны с функцией «если», поскольку этот код прекрасно работает с одним условием (создает новую книгу и добавляет все строки в эту книгу всякий раз, когда выполняется условие).
Другие проблемы: Этот метод довольно трудоемкий, когда в masterfile содержится много наблюдений, соответствующих указанному условию.По этой причине я был бы признателен, если бы кто-то смог найти лучшее решение по этому вопросу.Вместо того, чтобы вставлять строки одну за другой, было бы замечательно, если бы все строки могли быть одновременно размещены в правильной книге.
Private Sub CommandButton2_Click()
a = Worksheets("Sheet1").Cells(Rows.Count, 9).End(xlUp).Row
'creating new workbooks
Dim newDataOne As Workbook
Dim newDataTwo As Workbook
Set newDataOne = Workbooks.Add
Set newDataTwo = Workbooks.Add
ThisWorkbook.Worksheets("Sheet1").Activate
Dim nameone As String
Dim nametwo As String
nameone = ThisWorkbook.Worksheets("Sheet1").Range("CQ21")
nametwo = ThisWorkbook.Worksheets("Sheet1").Range("CQ22")
For i = 10 To a
If Worksheets("Sheet1").Cells(i, 1).Value = nameone Then
Worksheets("Sheet1").Rows(i).Copy
newDataOne.ActiveSheet.Activate
b = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
newDataOne.ActiveSheet.Cells(b + 1, 1).Select
ActiveSheet.PasteSpecial xlPasteValuesAndNumberFormats
ThisWorkbook.Worksheets("Sheet1").Activate
End If
If Worksheets("Sheet1").Cells(i, 1).Value = nametwo Then
Worksheets("Sheet1").Rows(i).Copy
newDataTwo.ActiveSheet.Activate
h = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
newDataTwo.ActiveSheet.Cells(h + 1, 1).Select
ActiveSheet.PasteSpecial xlPasteValuesAndNumberFormats
ThisWorkbook.Worksheets("Sheet1").Activate
End If
Next i
End Sub
>