[英]Loop through Pivot Table dates in VBA 2010
有一个与此问题有关的问题:我想循环遍历VBA 2010中的数据透视表日期字段,而不是编写:
ActiveSheet.PivotTables("MyPivotTable").PivotFields( _
"[Dim Time].[Year Month Day].[Date YYYYMMDD]").VisibleItemsList = Array( _
"[Dim Time].[Year Month Day].[Year].&[2015].&[01].&[2015/01/01]", _
"[Dim Time].[Year Month Day].[Year].&[2015].&[01].&[2015/01/02]", _
"And so on......... until"
"[Dim Time].[Year Month Day].[Year].&[2015].&[01].&[2015/01/19]")`
我会写类似
Dim Mnths As Integer
Dim Days As Integer
For Mnths = 1 To 5
For Days = 1 To 19
Sheets("MtShhet").Select
ActiveSheet.PivotTables("MyPivotTable").PivotFields( _
"[Dim Time].[Year Month Day].[Date YYYYMMDD]").VisibleItemsList = Array( _
"[Dim Time].[Year Month Day].[Year].&[2015].&[" & Mnths & "].&[2015/" & Mnths & "/" & Days & "])"
Next Days
Next Mnths
我环顾四周,但看到的大多数解释都显示日期的不同形式,而不是本例中的数组。 我在录制宏时得到的数组中的日期这个奇怪的表达式。 我想这与数据透视表创建者(不是我)有关。
我无法真正测试最后一部分,但是您可以像这样构建数组:
Dim Mnths As Integer
Dim Days As Integer
Dim vDates(1 To 95)
Const csDIMENSION As String = "[Dim Time].[Year Month Day].[Year].&[2015].&["
For Mnths = 1 To 5
For Days = 1 To 19
vDates((Mnths - 1) * 19 + Days) = csDIMENSION & Mnths & "].&[2015/" & Format$(Mnths, "00") & "/" & Format$(Days, "00") & "])"
Next Days
Next Mnths
Sheets("MtShhet").PivotTables("MyPivotTable").PivotFields("[Dim Time].[Year Month Day].[Date YYYYMMDD]").VisibleItemsList = vDates
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.