【发布时间】:2017-01-03 07:43:59
【问题描述】:
我在复制条件范围中的过滤数据时遇到问题,然后将其粘贴到损益受监管实体表中,而新的过滤数据没有粘贴到以前的过滤数据上。如何调整下面的代码,确保先粘贴1226过滤的数据,再粘贴1843过滤的数据,再粘贴到1226的数据下方?
Sheets("P&L").Select
Range("A1").AutoFilter Field:=1, Criteria1:= _
"*1226*"
ActiveSheet.AutoFilter.Range.Copy
Sheets("P&L Regulated Entities").Select
Range("A1").Select
Selection.PasteSpecial _
Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False,Transpose:=False
Sheets("P&L").Select
Range("A1").AutoFilter Field:=1, Criteria1:= _
"*1843*"
ActiveSheet.AutoFilter.Range.Copy
Sheets("P&L Regulated Entities").Select
ActiveCell.Offset(1).Select
Range("A1").Select
Selection.PasteSpecial _
Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Sheets("P&L").Select
Range("A1").AutoFilter Field:=1, Criteria1:= _
"*865*"
ActiveSheet.AutoFilter.Range.Copy
Sheets("P&L Regulated Entities").Select
ActiveCell.Offset(1).Select
Range("A1").Select
Selection.PasteSpecial _
Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Sheets("P&L").Select
Range("A1").AutoFilter Field:=1, Criteria1:= _
"*1223*"
ActiveSheet.AutoFilter.Range.Copy
Sheets("P&L Regulated Entities").Select
ActiveCell.Offset(1).Select
Range("A1").Select
Selection.PasteSpecial _
Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
【问题讨论】:
-
嗯,你会想要使 Range("A1").Select 动态的找到最后一行有数据并向下移动。有关查找最后一行的方法,请参见此处:stackoverflow.com/questions/11169445/… 然后在最后一行的返回值上加 1。
-
@ScottCraner 你能告诉我如何将它合并到上面的代码中吗?
-
另外,最好是avoid using
.Select/.Activate。很多这样的代码可以缩减到最多 10 行。