繁体   English   中英

在VBA 2010中循环浏览数据透视表中的日期

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM