如何根据2列中的匹配标准复制/粘贴行?

时间:2017-07-27 07:47:02

标签: excel vba

我正在使用Scott Craner的代码更改(完美无缺)。但是,现在我希望VBA不仅可以匹配一列,还可以匹配两列标准,然后将公式复制/粘贴到下一页。

Sub TransferRows()
Dim lLRow As Long

    With Sheets("Sheet1")
        lLRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        .Range("B:B").AutoFilter Field:=1, Criteria1:="Cat"
        .Range("B2:B" & lLRow).SpecialCells(xlCellTypeVisible).EntireRow.Copy
        Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlFormulas
        .AutoFilterMode = False
    End With
 End Sub

“B”栏中的Criteria1是“Cat”,我需要从“C”栏添加另一个Criteria2(“dog”)。因此,只要“B”中的“Cat”和“C”中的“Dog”,就会将整行复制到Sheet2。 PS。请记住,我在列“B”和“C”中有各种类型的数据,因此过滤器是必不可少的(因为有数十行的行,因此需要太长时间才能使用循环)。因此,我欢迎有关如何为上述代码添加其他标准的建议。

由于 西

1 个答案:

答案 0 :(得分:0)

尝试以下代码(请参阅代码中的注释):

Option Explicit

Sub TransferRows()

Dim lLRow As Long

With Sheets("Sheet1")
    lLRow = .Cells(.Rows.Count, 1).End(xlUp).Row

    With .Range("B1:C" & lLRow)
        .AutoFilter Field:=1, Criteria1:="Cat"
        .AutoFilter Field:=2, Criteria1:="dog"
    End With    
    .Range("B2:C" & lLRow).SpecialCells(xlCellTypeVisible).EntireRow.Copy   

    ' rest of your code goes here
End With

End Sub