【问题标题】:Timeline Slicer Select Date Range using a variable时间线切片器使用变量选择日期范围
【发布时间】:2015-09-03 07:04:03
【问题描述】:

我有一张表格,我想使用开始和结束日期变量来更新时间线日期范围。每天都会定期填写信息,所以我找到了数据输入的最新日期并将其保存为结束日期。然后我想显示截至该日期的滚动月份。

例如。数据输入的最后一天是 6 月 17 日 (17/06/2015),它被分配给 endDate。 startDate 可追溯到一个月前,即 5 月 18 日 (18/05/2015)。

此代码是针对任意选定时间范围录制的宏。

ActiveSheet.Shapes.Range(Array("Timeline 1")).Select
ActiveWorkbook.SlicerCaches("NativeTimeline_Timeline1").TimelineState. _
    SetFilterDateRange "12/05/2015", "16/06/2015"

当我将 startDate 和 endDate 变量放入其中时,它不起作用。

Dim startDate, endDate As Date

ActiveSheet.Shapes.Range(Array("Timeline 1")).Select
ActiveWorkbook.SlicerCaches("NativeTimeline_Timeline1").TimelineState. _
    SetFilterDateRange startDate, endDate

【问题讨论】:

    标签: vba date filter range timeline


    【解决方案1】:

    你可以使用这种语法:

    ActiveWorkbook.SlicerCaches("NativeTimeline_Timeline1").TimelineState. _
    SetFilterDateRange year(startDate) & "/" & month(startdate) & "/" & 
    day(startdate), year(endDate) & "/" & month(enddate) & "/" & day(enddate)
    

    没关系!

    【讨论】:

      【解决方案2】:

      您需要将值分配给startDateendDate,除非您将参数传递给您的过程,但我从这段代码中看不到这一点。

      假设此过程不带参数,那么如果您的开始日期和结束日期驻留在单元格中,分别说“A1”和“A100”,您可以在代码中分配它们。

      startDate = Range("A1")
      endDate = Range("A100")
      

      现在您可以在 SetFilterDateRange 方法中使用这些变量。

      另外,为每个变量分配数据类型也是一种好习惯。现在,startDate 是一个 Variant。所以在多变量的单行声明中,你应该写

      Dim startDate As Date, endDate As Date
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-08
        • 2012-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多