将过滤范围附加到 sheet

Appending filtered range to sheet

使用这段代码,我只需(感谢 Slai)将筛选范围从一个 sheet 复制并粘贴到另一个。然而,我试图通过将另一个过滤范围附加到 HAA sheet 来复制此代码,但由于某种原因,它 select 第 11 行并粘贴数据。

Sub Run()

    Application.ScreenUpdating = False

    Dim x As Long
    Dim rf As Range, wsTo As Worksheet, wx As Range

    Set rf = ThisWorkbook.Sheets("Table").UsedRange
    Set wsTo = Sheets("HAA")
    Set wx = ThisWorkbook.Sheets("HAA").UsedRange

    x = Range("B" & Rows.Count).End(xlUp).Row

    rf.AutoFilter
    rf.AutoFilter 12, "associated"
    rf.Copy

    wsTo.Range("A1").PasteSpecial xlPasteValues

    rf.AutoFilter
    rf.AutoFilter 12, "not found"
    rf.Offset(1, 0).Copy

我将此(下方)更改为 select 以查看它粘贴数据的位置,最初有 .PasteSpecial xlPasteValues

    wsTo.Range("A1" & x).Select

    Application.ScreenUpdating = True

End Sub

在最后一行之后粘贴,例如:

Dim rangeTo As Range
Set rangeTo = wsTo.UsedRange ' or = wsTo.Range("A1").CurrentRegion
Set rangeTo = rangeTo.Offset(rangeTo.Rows.Count)(1) ' (1) is to get the first cell 
Application.Goto rangeTo ' optional if you want to see where the values will be pasted
rangeTo.PasteSpecial xlPasteValues

您的代码中的问题是您在粘贴和过滤数据之前获取了最后一行。另外,Range( 通常指的是当前活动的 Sheet 可能并不总是你想要的,所以最好在 Range:

之前指定 sheet
 x = wsTo.Range("B" & wsTo.Rows.Count).End(xlUp).Row