Date VBA自动筛选在Excel中按日期设置-不显示任何数据

Date VBA自动筛选在Excel中按日期设置-不显示任何数据,date,excel,autofilter,vba,Date,Excel,Autofilter,Vba,下面的代码是我为这个项目编写的完整代码的一个片段,但这就是它失败的地方。用户在单元格C3中键入自动筛选将设置为的日期。但是,当我这样做时,自动过滤器不会返回任何数据(即使它确实存在)。我在论坛上到处都看到了这个问题,并尝试了从这些问题中给出的无数建议,但仍然无法获得ant数据来显示。有人能提供一些指导吗。excel中的日期为“dd/mm/yyyy” 尝试更改: 1. 从 到 2. 从 到 ActiveSheet.ListObjects(“Table2”).Range.AutoFilter字段:=

下面的代码是我为这个项目编写的完整代码的一个片段,但这就是它失败的地方。用户在单元格C3中键入自动筛选将设置为的日期。但是,当我这样做时,自动过滤器不会返回任何数据(即使它确实存在)。我在论坛上到处都看到了这个问题,并尝试了从这些问题中给出的无数建议,但仍然无法获得ant数据来显示。有人能提供一些指导吗。excel中的日期为“dd/mm/yyyy”

尝试更改:

1.

2.


ActiveSheet.ListObjects(“Table2”).Range.AutoFilter字段:=1,准则1:=“>=”&CLng(dDate),运算符:=xlAnd,准则2:=”下面的完整代码,已尝试并测试。(excel工作表中的单元格C4是以数字显示的日期)

选项显式
按日期自动筛选子对象()
将工作作为工作表
设置wks=ActiveSheet
工作表(“日志”)。选择
以字符串的形式显示
dDate=格式(工作表(“控件”).范围(“C4”))
有工作
如果不是,则为AutoFilterMode
范围(“表2[[标题],[标题名称]])。自动筛选
如果结束
If.FilterMode Then.ShowAllData
ActiveSheet.ListObjects(“Table2”).Range.AutoFilter字段:=1,Criteria1:=“>=”&CLng(dDate)_

接线员:=xlAnd,准则2:=“你好,simoco,谢谢你的帮助。我尝试过这个代码,但它对我不起作用。自动筛选正在筛选,但未提供任何数据。然而,我将鼠标悬停在这段代码上,它返回的日期为'13/01/2014'。我认为这是自动过滤器的问题,可能是它的设置问题,但我不完全理解这一点。我试着将这个日期粘贴到自动筛选的“搜索部分”,但它也没有返回任何内容。如果通过自动筛选手动选择(不搜索),我必须先选择年份,然后选择月份,然后选择日期。我的同事提到了日期上的欧洲设置/国际设置。同样,你有什么相关的想法吗?你能提供一些测试手册和你的数据吗?(即使用)我已加入Dropbox并将文件放在共享文件夹中。不知道怎么才能把它给你?那是聪明的西莫科。也感谢代码中的注释。我的错误是删除了标题名。感谢你为我所做的一切。
Option Explicit

Sub autofilter_by_date()

Dim wks As Worksheet
Set wks = ActiveSheet

Sheets("Log").Select

Dim dDate As Date
dDate = Worksheets("Sheet1").Range("C3")
dDate = DateSerial(Year(dDate), Month(dDate), Day(dDate))

With wks
    If Not .AutoFilterMode Then
Range("Table2[[#Headers],[Date Requested]]").AutoFilter
    End If
If .FilterMode Then .ShowAllData

ActiveSheet.ListObjects("Table2").Range.AutoFilter Field:=1, Operator:= _
    xlFilterValues, Criteria1:=dDate
Range("Table2[[#Headers],[H Name]]").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
End With

Sheets("Sheet3").Select
Range("A1").Select
ActiveSheet.Paste
Columns("A:A").EntireColumn.AutoFit
Application.CutCopyMode = False
ActiveSheet.Range(Selection, Selection.End(xlDown)).RemoveDuplicates Columns:=1, Header:=xlYes
    Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select

End Sub
Dim dDate As Date
dDate = CDate(Format(Worksheets("Controls").Range("C3"), "dd/mm/yyyy"))
Dim dDate As String
dDate = Format(Worksheets("Sheet1").Range("C3"), "dd/mm/yyyy")
ActiveSheet.ListObjects("Table2").Range.AutoFilter Field:=1, Operator:= _
xlFilterValues, Criteria1:=dDate
ActiveSheet.ListObjects("Table2").Range.AutoFilter Field:=1, Criteria1:=">=" & CLng(dDate), Operator:=xlAnd, Criteria2:="<" & CLng(dDate) + 1
Option Explicit

Sub autofilter_by_date()

Dim wks As Worksheet
Set wks = ActiveSheet

Sheets("Log").Select

Dim dDate As String
dDate = Format(Worksheets("Controls").Range("C4"))


With wks
    If Not .AutoFilterMode Then
Range("Table2[[#Headers],[Header Name]]").AutoFilter
    End If
If .FilterMode Then .ShowAllData

ActiveSheet.ListObjects("Table2").Range.AutoFilter Field:=1, Criteria1:=">=" & CLng(dDate), _
                 Operator:=xlAnd, Criteria2:="<" & CLng(dDate) + 1

Range("Table2[[#Headers],[Haulier Name]]").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
End With

Sheets("Sheet3").Select
Range("A1").Select
ActiveSheet.Paste
Columns("A:A").EntireColumn.AutoFit
Application.CutCopyMode = False
ActiveSheet.Range(Selection, Selection.End(xlDown)).RemoveDuplicates Columns:=1, Header:=xlYes

Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select

End Sub