首页 > 解决方案 > 未在不同工作表上创建具有不同缓存的第二个数据透视表

问题描述

我显然遗漏了一些明显的东西。

我基于一张表创建一个数据透视表,并获取所有数据字段。然后,当我尝试从第二个源表创建新缓存时,新的数据透视表不会出现。

lRow = Sheets("Source1").Cells(Sheets("Source1").Rows.Count, 1).End(xlUp).Row
lCol = Sheets("Source1").Cells(1, Sheets("Source1").Columns.Count).End(xlToLeft).Column

' Manipulate data, including new columns
Set PRange = Sheets("Source1").Cells(1, 1).Resize(lRow, lCol + 2)
Set PDest = Sheets("Source1 Summary")

Set PCache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
    PRange).CreatePivotTable(TableDestination:= _
    PDest.Cells(3, 1), TableName:="Source1Pivot")

' Set up the table with the data fields, all works perfectly

'For the new Pivot Table:
lRow = Sheets("Source2").Cells(Sheets("Source2").Rows.Count, 1).End(xlUp).Row
lCol = Sheets("Source2").Cells(1, Sheets("Source2").Columns.Count).End(xlToLeft).Column

Set PRange = Sheets("Source2").Cells(1, 1).Resize(lRow, lCol + 1)
Set PDest = Sheets("Source2 Summary")

Set PCache2 = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
    PRange).CreatePivotTable(TableDestination:= _
    PDest.Cells(3, 1), TableName:="Source2Pivot")

此时,没有新建数据透视表,添加字段也不起作用。宏以“Source2 摘要”为空白结束。

我确实验证了新的 lRow 和 lCol 是从 Source2 页面中提取的。你能看到我错过的一些愚蠢的事情吗?我无法找到有关在新页面上使用新来源设置新支点的任何信息……大概是因为它通常可以正常工作!

标签: excelvbapivot-table

解决方案


您将 prange 设置为比基础数据宽的两列,因此无法创建数据透视表,因为这些空白列没有列标题。


推荐阅读