Excel数据透视表问题将列设置为"运行总计"使用VBA

时间:2015-06-04 16:19:58

标签: excel excel-vba for-loop pivot-table vba

我正在使用VBA循环遍历数据透视表,以便更新值以包含新数据(来自外部源)并更新分组的开始和结束日期。这段代码有用......

For Each pvt In ws.PivotTables

    For Each pvtFld In pvt.RowFields
        rowLabel = pvtFld.Name
        pvtFld.DataRange.Group Start:=startDate, End:=endDate, By:=7, Periods:=Array(False, False, False, True, False, False, False)
    Next pvtFld ...

[Trouble code will go here, but let me explain further]

Next pvt

我遇到的问题是刷新所有"运行总计"被重置为"没有计算。

录制宏很有帮助,但对其他电子表格无用

' Sets the "Total" Column from each Pivot to "Running Total"
With ws.PivotTables("LOEPivot").PivotFields( _
    "Total Planned LOE")
    .Calculation = xlRunningTotal
    .BaseField = "MOI"
End With

所以,我试图像这样嵌入另一个For each ......

For each pvtCol in pvt.ColumnFields
    if pvtCol.Name Like .Name & "Total" Then
       pvtCol.Calculation = xlRunningTotal
    end if 
Next pvtCol

虽然b / c列名等于字符串"值"

但这不起作用

我缺少不同的方法或属性吗?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的困难,但是我找到了解决方案。在看了我的marco之后,我发现它设置了“基地”字段'错误(右键单击数据透视>在>中显示>显示运行总计的值[显示基本字段])。

.BaseField之后添加.calculation(例如.BaseField ="周号"),您应该可以解决此问题。

此链接可能也会帮助您http://www.brainbell.com/tutorials/Excel_VBA/Running_Total.html