我已經在源數據的同一張表中創建了一張數據透視表。現在,我想在同一張表中使用相同的數據源創建第二個數據透視表,但在透視表內(當然)使用不同的打印數據。我一直收到一個錯誤,因爲它表示數據透視表不能覆蓋另一個數據透視表。但是,他們的方式我選擇了數據透視表創建的範圍,它們不會互相覆蓋。我也手動測試過。另外,如果我記錄過程,它只是使用源數據的準確參考,我不想使用該參數,因爲每天都會更改lastrow和lastcolumn。爲了提醒一下,這個宏很適合創建第一個表格。第二個表是問題。下面,我將提供我現在的代碼。同一張Excel表中的兩張數據透視表
Dim DSheet As Worksheet
Dim PCache As PivotCache
Dim PTable1 As PivotTable
Dim PTable2 As PivotTable
Dim PRange As Range
Application.DisplayAlerts = True
Set DSheet = Worksheets("Budget_Report")
Set PRange = DSheet.Range(Cells(1, 53), Cells.SpecialCells(xlCellTypeLastCell))
Set PCache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=PRange)
Set PTable1 = PCache.CreatePivotTable(TableDestination:=DSheet.Cells(4, 1), TableName:="PivotTable1")
Set PTable2 = PCache.CreatePivotTable(TableDestination:=DSheet.Cells(17, 2), TableName:="PivotTable2")
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
.Caption = "Monthly Cost Forecast"
End With
End With
With ActiveSheet.PivotTables("PivotTable2")
With .PivotFields("Oran")
.Orientation = xlRowField
.Position = 1
.Subtotals(1) = True
.Subtotals(1) = False
End With
With .PivotFields("Monthly Cost FCST")
.Orientation = xlDataField
.Position = 1
.Function = xlAverage
.Caption = "Monthly Cost Forecast"
End With
End With
如果沒有看到您的數據,很難判斷數據透視表是否或如何重疊。爲什麼使用代碼來創建數據透視表?數據透視表的想法是隻有數據發生變化,因此數據透視表定義保持不變,您只需刷新它們即可。另外,請考慮使用Excel表對象作爲數據透視表的源,然後數據源將動態增長和減少。有關此主題的書籍已經撰寫,因此您可能希望對數據透視表和動態數據源進行更多的研究和學習。 – teylyn
@teylyn感謝您的反饋!我想自動創建它們,因爲這個宏將每天在不同的工作簿中運行。 (我會複製粘貼它每天到其他工作表! –