我正在编写一个代码来创建一个动态数据透视表但我正在努力,因为我需要数据透视表来读取具有不同列名(日期)的动态数据范围,这些数据根据日期范围而变化。
所以对于以下代码行:
Worksheets("Pivot").PivotTables("PivotTable1").AddDataField Worksheets("Pivot").PivotTables( _"PivotTable1").PivotFields("15/01/2016"), "Sum of 15/01/2016", xlSum
我需要使用变量而不是日期15/01/2017
,我需要使用循环将所有日期范围填充到数据透视表中的数据字段中。
答案 0 :(得分:0)
如果您有特定的日期数,则可以使用变量名替换硬编码日期。所以在你的情况下有2个日期:
Date1 = "01/01/2017"
Date2 = "05/02/2017"
Worksheets("Pivot").PivotTables("PivotTable1").AddDataField Worksheets("Pivot").PivotTables("PivotTable1").PivotFields(Date1), "Sum of " & Date1 & """, xlSum"
Worksheets("Pivot").PivotTables("PivotTable1").AddDataField Worksheets("Pivot").PivotTables("PivotTable1").PivotFields(Date2), "Sum of " & Date2 & """, xlSum"
会起作用。
如果你想要一个循环,你可以将日期填充到如下所示的数组中,并为每个循环循环数组中的值:
Dim Dates(1)
Dates(0) = "01/01/2017"
Dates(1) = "05/02/2017"
For Each Dat In Dates
Worksheets("Pivot").PivotTables("PivotTable1").AddDataField Worksheets("Pivot").PivotTables("PivotTable1").PivotFields(Dat), "Sum of " & Dat & """, xlSum"
Next