【发布时间】:2017-10-18 14:43:35
【问题描述】:
我创建了一个数据透视表,我想在其中添加一列,它将打印数据透视表的其他两列之间的差异(值)。我将提供与构建数据透视表相关的代码部分。很明显,我在它的最后部分尝试了一些东西,但它不会打印任何东西。它运行,但它只是不打印任何东西。它只正确打印数据透视表,而不是新列。
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
【问题讨论】:
-
您是否尝试查看宏记录器生成的内容然后进行调整?
标签: vba excel pivot-table