如果满足条件,将行从一个工作簿复制到另一工作簿的最有效方法是什么?

时间:2019-07-01 12:30:33

标签: excel vba

如果workbook1中的G列不为空,则将整行复制到workbook2中。

现在,我要做的只是在其中包含If语句的“直到”。

我知道这可能不是破解该漏洞的最有效方法,所以我正在寻求帮助。

1 个答案:

答案 0 :(得分:0)

我们首先为所有与给定条件匹配的行取并,而不是为每个单元格查找,复制和粘贴,然后仅复制和粘贴一次。要使用下面的解决方案,请确保两个工作簿均已打开,并根据需要将其名称放在下面的字符串中:

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