我们在Excel 2013中设置了一个由各种表格,图表和文本组成的仪表板 . 我们在特定时间范围内限制了范围,但被问到我们是否能够包含所有数据并允许用户选择他们自己的日期 .

起初我认为通过Slicers和Timeline函数可以很容易 . 但是,我已经发现,如果它们来自同一个源,它只会影响多个数据透视表 .

为了设置我自己的解决方案,我首先将一些VBA拉到一起来调整源表 . 但是,我意识到不会调整Pivots或Tables,所以我转而开发代码来调整和刷新Pivots .

首先,我试图完成一个示例,然后我将继续折叠正确的工作表名称,参考文件等 . 我开发了一个迷你模型,可以工作:

Sub Button1_Click()
Dim pt As PivotTable
Set pt = Sheets("Sheet1").PivotTables("PivotTable1")
pt.PivotFields("Date").ClearAllFilters
pt.PivotFields("Date").CurrentPage = Range("B2").Value

End Sub

我试图将此应用于源工作簿的副本但没有成功 . 我甚至尝试将源工作簿数据提取到新工作簿但没有成功 .

Sub Set_date()

Dim pt As PivotTable
Set pt = Sheets("FY15 Events").PivotTables("PivotTable2")
pt.PivotFields("Start Time").ClearAllFilters
pt.PivotFields("Start Time").CurrentPage = Range("N2").Value

End Sub

这第二部分一直工作到我收到的最后一行

运行时错误'1004':应用程序定义的错误或对象定义的错误

我认为这可能是日期格式化问题,但即使应用以下内容也没有影响:

Sub Date_format()
Sheet2.Range("B2", "B50000").NumberFormat = "mm/dd/yyyy"
Sheet2.Range("N2").NumberFormat = "mm/dd/yyyy"
End Sub

任何帮助,将不胜感激 .