在数据透视表中添加一个计算的字段

我已经创build了一个数据透视表,我想添加一个列,它将打印数据透视表的两个其他列之间的差异(值)。 我将提供与构build数据透视表有关的部分代码。 很显然,我已经在最后一部分尝试了一些东西,但不会打印任何东西。 它运行,但它只是不打印任何东西。 它只能正确打印数据透视表,而不是新列。

Dim DSheet As Worksheet Dim PCache As PivotCache Dim PTable As PivotTable Dim PRange As Range Application.DisplayAlerts = True Set DSheet = Worksheets("Budget_Report") Set PRange = DSheet.Range(Cells(1, 27), Cells.SpecialCells(xlCellTypeLastCell)) Set PCache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=PRange) Set PTable = PCache.CreatePivotTable(TableDestination:=DSheet.Cells(15, 1), TableName:="PivotTable1") With ActiveSheet.PivotTables("PivotTable1") With .PivotFields("T-Lane") .Orientation = xlRowField .Position = 1 .Subtotals(1) = True .Subtotals(1) = False End With With .PivotFields("Monthly Cost FCST") .Orientation = xlDataField .Position = 1 .Function = xlAverage .NumberFormat = "0.00" .Caption = "Monthly Cost Forecast" End With With .PivotFields("Monthly Vol FCST") .Orientation = xlDataField .Position = 2 .Function = xlAverage .NumberFormat = "0.00" .Caption = "Monthly Vol Forecast" End With With .PivotFields("Monthly $/SU FCST") .Orientation = xlDataField .Position = 3 .Function = xlAverage .NumberFormat = "0.00" .Caption = "Monthly $/SU Forecast" End With With .PivotFields("Monthly Cost Actuals") .Orientation = xlDataField .Position = 4 .Function = xlSum .NumberFormat = "0.00" .Caption = "Monthly Cost Actual" End With With .PivotFields("Monthly Vol Actuals") .Orientation = xlDataField .Position = 5 .Function = xlSum .NumberFormat = "0.00" .Caption = "Monthly Vol Actual" End With With .PivotFields("Monthly $/SU Actuals") .Orientation = xlDataField .Position = 6 .Function = xlAverage .NumberFormat = "0.00" .Caption = "Monthly $/SU Actual" End With .CalculatedFields.Add "Diff", "= 'Monthly Cost FCST'- 'Monthly Cost Actuals'" End With 

添加计算字段后,您需要将其方向设置为xlDataField,以使其在透视表中可见。

尝试这样的事情…

 .CalculatedFields.Add "Diff", "= 'Monthly Cost FCST'- 'Monthly Cost Actuals'" .PivotFields("Diff").Orientation = xlDataField