我试图从一个工作表中筛选数据,并将筛选的数据复制/粘贴到汇总表中。我有两个条件,如果满足,则需要进入两个单独的汇总表中。我可以筛选和复制数据,但是,当它粘贴到相应的表中时,它将覆盖表底部的总计行。
我需要复制的数据进入表的底部,但在最后一行的上方,这样总行数就不会受到影响。
Option Explicit
Sub FilterAndCopy()
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
Dim lngLastRow As Long
Dim col As Integer
Dim ws1 As Worksheet, ws2 As Worksheet
Set ws1 = Sheets("WH Locations")
Set ws2 = Sheets("Summary")
lngLastRow = ws1.Cells(Rows.Count, "H").End(xlUp).Row
With Range("A31", "H" & lngLastRow)
.AutoFilter
.AutoFilter Field:=8, Criteria1:="C"
.Offset(1, 0).Resize(.Rows.Count - 1).Copy Destination:=ws2.ListObjects("Table2")
.AutoFilter Field:=8, Criteria1:="D"
.Offset(1, 0).Resize(.Rows.Count - 1).Copy Destination:=ws2.ListObjects("Table3")
.AutoFilter
End With
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
End Sub
2条答案
按热度按时间agyaoht71#
将特殊单元格复制到Excel表格
efzxgjgh2#
解决这个问题最简单的方法是编写一个单独的宏来处理将数据复制和粘贴到表中的操作。这样,您就可以独立于主代码来测试代码。
如果只想复制值,请使用
PasteSpecial
。如果要复制值公式和格式,请使用
Range.Copy Detsination
。用法