2014-09-26 111 views
0

我在excel中写了这个宏。但是,当我使用结束(xldown)称赞它的剂量工作。任何建议? 我想ro过滤一张大桌子并将其复制到工作表2上。 每次我想粘贴表在表的末尾(表的最后一行之后)excel中表格末尾的VBA粘贴范围

这是我的VBA代码:

Sub filter() 
Sheets("Sheet1").Range("A1:J46371").AdvancedFilter Action:=xlFilterCopy, _ 
     CriteriaRange:=Sheets("Sheet1").Range("M9:W10"), CopyToRange:=Sheets("sheet2").Range("A1:J1"), _ 
     Unique:=False 
Sheets("Sheet1").Range("A1:J46371").AdvancedFilter Action:=xlFilterCopy, _ 
     CriteriaRange:=Sheets("Sheet1").Range("M11:W12"), CopyToRange:=Sheets("sheet2").Range("A1:J1", Range("A1:J1").End(xlDown)).Select, _ 
     Unique:=False 
End Sub 

回答

0

你的代码是正确的,但是当你选择单元格只需要细微的变化使用xlDown复制

Sheets("Sheet2").Range(Range("A1:J1"), Range("A1:J1").End(xlDown)).Select 

请在CopyToRange中替换上面的代码行并检查。

+0

我不明白,你的代码和我的代码有什么区别?我使用它,它的工作。它说那个参考是无效的! – user3041372 2014-09-27 05:25:29

+0

对不起!它剂量工作。它表示 “应用程序中定义或对象定义的错误 – user3041372 2014-09-27 05:34:39

+0

使用下面的代码,并检查: 子滤波器() 表”。范围( “工作表Sheet)(” A1:J46371" )AdvancedFilter动作:= xlFilterCopy,_ CriteriaRange:= Sheet(“Sheet1”)。Range(“M9:W10”),CopyToRange:= Sheet(“sheet2”)。Range(“A1:J1”),_ Unique:= False Sheets(“Sheet1” ).Range(“A1:J46371”)。AdvancedFilter操作:= xlFilterCopy,_ CriteriaRange:=表格(“Sheet1”)。范围(“M11:W12”),CopyToRange:=表格(“Sheet2”)。Range范围(“A1:J1”),范围(“A1:J1”)。结束(xlDown))。Select,_ Unique:= False End Sub – 2014-09-27 06:11:30