2014-09-26 114 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