使用此代码,我只是(感谢Slai)将过滤范围从一张纸复制并粘贴到另一张纸上。但是,我尝试通过将另一个过滤范围附加到HAA表来复制此代码,但由于某种原因,它会选择第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
我改变了这个(下面)选择查看它粘贴数据的位置,原来有.PasteSpecial xlPasteValues
wsTo.Range("A1" & x).Select
Application.ScreenUpdating = True
End Sub
答案 0 :(得分:0)
要在最后一行之后粘贴,例如:
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(
通常是指当前有效的工作表,可能并不总是您想要的工作表,因此最好在范围之前指定工作表:
x = wsTo.Range("B" & wsTo.Rows.Count).End(xlUp).Row