【问题标题】:The resulting data is not within the selected dates结果数据不在所选日期内
【发布时间】:2020-04-28 17:03:39
【问题描述】:

我正在尝试根据日期范围提取数据,但过滤器无法正确识别开始/结束日期值。结果不稳定,或者根本没有结果。

Sub CopyDataBasedOnDate()

Dim StartDate As Date
Dim EndDate As Date
Dim MainWorksheet As Worksheet

StartDate = Worksheets("Macro").Range("j8").Value
  EndDate = Worksheets("Macro").Range("j9").Value

Set MainWorksheet = Worksheets("RawData")

MainWorksheet.Activate

Range("a4").CurrentRegion.Sort _
      key1:=Range("a4"), order1:=xlAscending, _
       Header:=x1Yes

Range("a4").CurrentRegion.AutoFilter Field:=1, _
    Criteria1:=">=" & StartDate, Operator:=xlAnd, _
    Criteria2:="<=" & EndDate

ActiveSheet.AutoFilter.Range.Copy

Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Paste Destination:=Range("A5")
Selection.Columns.AutoFit
Call SumCell
Range("a1").Select
MainWorksheet.Activate
Selection.AutoFilter
End Sub

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    如果您没有明确使用 Range() ... .Criteria: ... ,则 Get all dates between 2 dates in vba 中的 cezarypiatek 答案是一个解决方案,如果您想使用 Range() ... .Criteria: ... 一个解决方案是在 Filtering between two dates in excel vba

    所以基本上使用CDblStartDateEndDate 转换为双倍

    【讨论】:

      【解决方案2】:

      Excel 将 Date 解释为 Long 变量。如果您的数据格式与 (En) 默认数据格式不同,则可能存在匹配问题。所以使用 Clng(你的日期)。请尝试下一个代码。仅指过滤部分:

      Sub CopyDataBasedOnDate()
       Dim StartDate As Date
       Dim EndDate As Date
       Dim MainWorksheet As Worksheet
      
        StartDate = Worksheets("Macro").Range("j8").Value
        EndDate = Worksheets("Macro").Range("j9").Value
      
       Set MainWorksheet = Worksheets("RawData")
      
       MainWorksheet.Range("a4").CurrentRegion.Sort _
            key1:=MainWorksheet.Range("a4"), order1:=xlAscending, _
             Header:=xlYes
      
       MainWorksheet.Range("a4").CurrentRegion.AutoFilter field:=1, _
          Criteria1:=">=" & CLng(StartDate), Operator:=xlAnd, _
          Criteria2:="<=" & CLng(EndDate), Operator:=xlFilterValues
      End Sub
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-23
        • 1970-01-01
        • 2021-03-22
        • 2020-04-01
        • 1970-01-01
        • 2015-01-08
        • 2010-12-26
        相关资源
        最近更新 更多