我有一张表,我想使用开始和结束日期变量更新时间轴日期范围。信息定期每天填写,因此我找到最新的数据输入日期并将其保存为结束日期。然后我想展示截至该日期的滚动月份。
实施例。数据输入的最后一天是6月17日(2015年6月17日),它被分配给endDate。 startDate可以追溯到一个月,即5月18日(2015年5月18日)。
此代码是任意选定时间范围的录制宏。
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
答案 0 :(得分:0)
您需要为startDate
和endDate
分配值,除非您将参数传递给您的过程,但我没有从此代码中看到。
假设此过程不接受参数,那么如果您的开始日期和结束日期分别位于单元格中,分别说“A1”和“A100”,则可以在代码中指定它们。
startDate = Range("A1")
endDate = Range("A100")
现在,您可以在SetFilterDateRange
方法中使用这些变量。
同样优良的做法是为每个变量分配数据类型。现在,startDate是一个Variant。因此,在多行变量的单行声明中,您应该编写
Dim startDate As Date, endDate As Date
答案 1 :(得分:0)
你可以使用这种语法:
ActiveWorkbook.SlicerCaches("NativeTimeline_Timeline1").TimelineState. _
SetFilterDateRange year(startDate) & "/" & month(startdate) & "/" &
day(startdate), year(endDate) & "/" & month(enddate) & "/" & day(enddate)
没关系!