簡體   English   中英

同一張Excel工作表中的兩個數據透視表

[英]Two Pivot Tables in the same excel sheet

我在與源數據相同的表中創建了數據透視表。 現在,我想在具有相同數據源的同一工作表中創建第二個數據透視表,但在數據透視表內部創建了不同的打印數據(當然)。 我不斷收到錯誤消息,因為它說數據透視表無法覆蓋另一個數據透視表。 但是,他們以這種方式選擇了創建數據透視表的范圍,它們不會相互覆蓋。 我也手動測試過。 另外,如果我記錄該過程,它只會使用源數據的精確引用,因為lastrow和lastcolumn每天都會更改,所以我不想使用該引用。 提醒一下,該宏非常適合創建第一個表。 第二個表是問題。 下面,我將提供現在的代碼。

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

當您插入第一個數據透視表並在填充第一個數據透視表之前插入另一個數據透視表時,第一個數據透視表的空數據透視表范圍將占據第二個數據透視表的目標單元格[DSheet.Cells(17,2)]。

我認為您應該插入第一個數據透視表並填充它,然后再插入另一個數據透視表並填充它。

查看是否可以解決您的問題。

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")

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

Set PTable2 = PCache.CreatePivotTable(TableDestination:=DSheet.Cells(17, 2), TableName:="PivotTable2")

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

數據透視表MSDN文檔中

重要 ”如果定義在Excel工作表多個數據透視表可能生成的表可以增長和相互重疊 ,如果活動返回大量數據集。 在這種情況下,您刷新數據時將收到“數據透視表報表不能與另一個數據透視表報表重疊”。 您可以通過在數據透視表之間添加其他列或行以允許表在不重疊的情況下增長來糾正此錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM