2014-01-07 21 views
0

我試圖過濾用戶輸入的兩個日期之間的電子表格。我已經寫了(與Excel中的自動宏工具主要幫助)的代碼是:在自動篩選器之間使用日期變量Between語句

Sub Between() 
Between Macro 
Filters Create-Date between two parameters. 

Dim MonthNeeded1 As Date, MonthNeeded2 As Date 

Let MonthNeeded1 = InputBox("First Day Of Month for Target Period", "Date", "mm/dd/yyyy") 

Let MonthNeeded2 = InputBox("Last Day Of Month for Target Period", "Date", "mm/dd/yyyy") 

ActiveSheet.Range("$A$1:$S$8704").AutoFilter Field:=4, Criteria1:= _">= MonthNeeded1", Operator:=xlAnd, Criteria2:="<= MonthNeeded2"* 

End Sub 

我的問題似乎是與標準1和Criteria2語句。字符串MonthNeededX正被放入filter命令中,而不是由用戶輸入的變量日期。我搜索了這個網站和其他人,似乎無法找到問題。有人可以幫忙嗎?

+0

請參閱http://stackoverflow.com/help/formatting。 – pnuts

+2

嘗試使用ActiveSheet.Range(「$ A $ 1:$ S $ 8704」)。AutoFilter Field:= 4,Criteria1:=「> =」&MonthNeeded1,Operator:= xlAnd,Criteria2:=「<=」&MonthNeeded2 '而不是 –

+0

完美!非常感謝你的幫助! – user3171003

回答

0

這是@ simoco的回答。一旦Simoco輸入答案,我將刪除。只是想確保將它列入未來研究人員的名單。

更改此:

ActiveSheet.Range("$A$1:$S$8704").AutoFilter _ 
    Field:=4, _ 
    Criteria1:=">= MonthNeeded1", _ 
    Operator:=xlAnd, _ 
    Criteria2:="<= MonthNeeded2" 

要這樣:

ActiveSheet.Range("$A$1:$S$8704").AutoFilter _ 
    Field:=4, _ 
    Criteria1:=">=" & MonthNeeded1, _ 
    Operator:=xlAnd, _ 
    Criteria2:="<=" & MonthNeeded2