将过滤范围附加到 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
使用这段代码,我只需(感谢 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:
x = wsTo.Range("B" & wsTo.Rows.Count).End(xlUp).Row