2015-05-29 58 views
0

我有一個excel工作表,包含大量表格形式的數據。下面是什麼想做的事如何更改我的過濾器,然後複製顯示的所有數據

ActiveSheet.Range("$A$1:$M$2735").AutoFilter Field:=1, Criteria1:= _ 
    "2015-05-28" 
    Range("A2618").Select 
    Range(Selection, Selection.End(xlToRight)).Select 
    Range(Selection, Selection.End(xlDown)).Select 
    Selection.Copy 

我與這個有問題的宏錄製是可以讓特定的細胞對自動篩選範圍(我想這適用於不同的表的可能有不同數量的行/列)

我也想在數據過濾後選擇左上角的單元格,這段代碼通過命名來實現。之後,我想選擇表中的所有數據並複製它。我知道這與Range(「A1」)。CurrentRegion有關,但我不知道如何實現這個。

我與我的代碼的另一個問題是過濾結果日期與今天的日期。例如,我想過濾到昨天的日期,然後過濾到3天前的日期,然後過去幾周的日期。

對不起,這是在後3個問題,但幫助將不勝感激

回答

1

VBA知道表作爲listobjects,所以如果你想引用在紙張上的表,你可以使用:Sheets(i).ListObjects(1).Range

要選擇過濾後的全表:Sheets(i).ListObjects(1).Range.SpecialCells(xlCellTypeVisible).Select

設置過濾器,以昨日:Sheets(i).ListObjects(1).Range.AutoFilter Field:=1, Criteria:=format(date()-1,"yyyy-mm-dd")

+0

由於這已經很多幫助!我有另一個問題,雖然:) 如何添加更多的日期到設置爲昨天的過濾器,它會是: 條件:= format(date() - 1,「yyyy-mm-dd」)(date( )-2「yyyy-mm-dd」)等? 即時通訊設法要問的是如何格式化代碼,所以我可以使它過濾昨天,然後昨天+前2天,然後過去一週。 –

+0

「那麼」對你來說意味着什麼?同時顯示小時列出的值(看這裏:http://stackoverflow.com/a/18135388/4721734)或者你想宏從一個變爲另一個(在這種情況下將你的值存儲在一個數組中在之前的鏈接中並通過'for'循環) –

相關問題