我嘗試通過表單(Periode)上的組合框來讓人們選擇2個日期來在特定時間段內搜索數據。所選日期被用作在數據內搜索的選擇標準。我通過這段代碼:正確接管日期以選擇搜索條件
Private Sub Datumok_Click()
Dim AA1 As String
Dim AA2 As String
Dim AA3 As String
Dim AA4 As String
Dim AA5 As String
Dim AA6 As String
Dim LastRow As Single
AA1 = Me.dag1.Value
AA2 = Me.maand1.Value
AA3 = Me.jaar1.Value
AA4 = Me.dag2.Value
AA5 = Me.maand2.Value
AA6 = Me.jaar2.Value
Application.ScreenUpdating = False
Sheets("Feuil2").Select
LastRow = Cells(Rows.Count, "a").End(xlUp).Row
Sheets("Start").Range("F7") = AA2 & "-" & AA1 & "-" & AA3
Sheets("Start").Range("G7") = AA5 & "-" & AA4 & "-" & AA6
Sheets("Start").Range("F8") = AA1 & "-" & AA2 & "-" & AA3
Sheets("Start").Range("G8") = AA4 & "-" & AA5 & "-" & AA6
Unload Periode
Sheets("Feuil2").Select
ActiveSheet.AutoFilterMode = False
Range(Cells(1, 1), Cells(LastRow, 10)).Select
Selection.AutoFilter
ActiveSheet.Range(Cells(2, 3), Cells(LastRow, 3)).AutoFilter Field:=3, ActiveSheet.Range(Cells(2, 3), Cells(LastRow, 3)).AutoFilter Field:=3, Criteria1:=">=" & Sheets("Start").Range("F8"), Operator:=xlAnd, Criteria2:="<=" & Sheets("Start").Range("G8")
Cells(1, 1).Select
Sheets("Start").Select
Cells(8, 5).Value = "Ok"
'Wel blad updaten
Application.ScreenUpdating = True
End Sub
有點討厭的代碼也許。選擇放到一個單元格中,這兩個單元格用作選擇標準。 有時候,vba或Excel不會接管日期,但是當我在過濾器中手動執行時,它會工作。有人知道如何改進代碼,它始終有效嗎?
請閱讀[如何問](http://stackoverflow.com/help/how-to-ask)。在這篇文章中你甚至都沒有提出任何問題! –
爲什麼在F7,G7,F8和G8中使用兩種不同格式的日期? – ZygD
好問題。這是英國日期(用於過濾器)和(荷蘭)日期顯示給用戶的區別。 – Helfenstein