【发布时间】:2016-09-16 15:38:35
【问题描述】:
使用此代码,我只需(感谢 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
【问题讨论】:
-
您要从哪个工作表中获取最后填充的行(例如 x)?为什么你不偏移以获得第一个可用的空白单元格?例如
x = wsTo.Range("B" & Rows.Count).End(xlUp).OFFSET(1, 0).Row看起来应该是wsTo.Range("A" & x).Select。 -
您能添加一些输入示例和所需结果吗?
-
@Jeeped x = wsTo.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row 这样,它就会粘贴到现有数据上。跨度>
标签: vba excel excel-2007