Каков наиболее эффективный способ скопировать строки из одной рабочей книги, если выполняется условие, в другую рабочую книгу? - PullRequest
1 голос
/ 01 июля 2019

Если столбец G в рабочей книге 1 не пустой, скопируйте всю эту строку в рабочую книгу 2.

Теперь я бы просто сделал «До» с оператором If внутри.

Я знаю, что это, вероятно, далеко не самый эффективный способ взлома этого, поэтому я прошу помощи.

1 Ответ

0 голосов
/ 01 июля 2019

Вместо того, чтобы искать, копировать и вставлять для каждой ячейки, мы сначала берем объединение всех строк, которые соответствуют данному критерию, а затем копируем и вставляем только один раз.Чтобы использовать приведенное ниже решение, убедитесь, что обе рабочие книги открыты, и укажите их имена в соответствующих строках ниже:

Sub Macro1()
Dim wb1s as Worksheet, wb2s as Worksheet, rngG As Range, MySel As Range

'Change String as required based on your Workbook Name
'Change Worksheet number as required.
Set wb1s = Workbooks("workbook1.xlsx").Worksheets(1)
Set wb2s = Workbooks("workbook2.xlsx").Worksheets(1)

With wb1s
    Set rngG = .Range("G1", .Range("G" & .Rows.Count).End(xlUp))
End With

For Each cell In rngG
    If cell.Value <> "" Then
        If MySel Is Nothing Then
            Set MySel = cell.EntireRow
        Else
            Set MySel = Union(MySel, cell.EntireRow)
        End If
    End If
Next cell

If Not MySel Is Nothing Then MySel.Copy Destination:= wb2s.Range("A1")
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...