2015-06-11 80 views
2

我有一個數據集,我只想在指定日期後顯示數據。 該日期將由最終用戶定義。我能夠爲數字做到這一點,但只要我嘗試這樣做的日期宏運行,結果是沒有數據顯示。過濾器僅顯示在單元格中輸入日期後的數據

我的數據表被稱爲「數據」 與日期列中是第8列(字段8) 和輸入日期,我想確定我得到的數據是在小區H1 我在英國(也許有一個影響???) 我不想開始轉換我的基礎原始數據。

我想我拼命試圖讓小區H1被「看到」下面

碼日期:

Sub Macro_show_data_after_inputted_date 

    Sheets("Data").Select 
    Range("C15").Select 
    Selection.AutoFilter 
    ActiveSheet.Range("$A$4:$AJ$2875").AutoFilter Field:=8, Criteria1:=">" & Range("H1"), _ 
     Operator:=xlAnd 
End Sub 
+0

您需要將列H中的數字格式複製到H1並使用Criteria1:=「>」&Range(「H1」)。Text' – Jeeped

+0

Thanks Jeeped that worked。 – SteVeBA

+0

有趣的是,我的數據採用dd-mmm-yyyy格式,例如.. 14-Dec-2015。我認爲(從未假設)是日期格式,雖然是自定義日期格式。但是,它並不像這些用途的常規日期格式。但是你的.text輸入修復了這個問題。對於其他讀者,我的最終代碼也可以整理一下。 (「數據」)選擇 ActiveSheet.Range(「$ A $ 4:$ AJ $ 2875」)。AutoFilter Field:= 8,Criteria1:=「>」&Range(「H1」)。Text,_ 運算符:= xlAnd – SteVeBA

回答

0

這是一個數字格式的問題。 Range.AutoFilter method預期其標準的格式與其過濾的值相同。可以使用Range .Text property來檢索單元格的顯示值(又名格式文本)。

Sub Macro_show_data_after_inputted_date 

    with Sheets("Data") 
     if .autofiltermode then .autofiltermode = false 
     with .Range("C15") 
      .AutoFilter Field:=8, Criteria1:=">" & .Range("H1").TEXT 
     end with 
    end with 

End Sub 

如果錄製相同的操作,故意輸錯的日期格式,你會得到的記錄代碼它用作一個字符串標準之前正確的看到。

相關問題