识别刷新后哪些Excel数据透视表将重叠

识别刷新后哪些Excel数据透视表将重叠,excel,pivot,overlap,cube,overlapping,Excel,Pivot,Overlap,Cube,Overlapping,在大量Excel文件(=大约40张)中有许多数据透视(从单个OLAP多维数据集绘制;因此所有数据透视都有一个连接)。通常,同一工作表中有多个数据透视表 每当OLAP多维数据集发生更改时,可能需要很长时间才能找出哪些更改会导致重叠,从而取消刷新刷新连接时,有没有办法找出多个数据透视表中的哪一个会导致重叠? 附带条件:在单独的工作表中保存每个数据透视表不是一个选项(对于许多工作表而言),也不能将数据转换为多维数据集函数 您可以使用以下内容识别VBA中的范围: Activesheet.pivottab

在大量Excel文件(=大约40张)中有许多数据透视(从单个OLAP多维数据集绘制;因此所有数据透视都有一个连接)。通常,同一工作表中有多个数据透视表

每当OLAP多维数据集发生更改时,可能需要很长时间才能找出哪些更改会导致重叠,从而取消刷新刷新连接时,有没有办法找出多个数据透视表中的哪一个会导致重叠?


附带条件:在单独的工作表中保存每个数据透视表不是一个选项(对于许多工作表而言),也不能将数据转换为多维数据集函数

您可以使用以下内容识别VBA中的范围:

Activesheet.pivottables(1).databodyrange.address
还可以使用Intersect函数确定两个范围是否相交


您必须进一步挖掘,看看是否可以使用VBA移动数据透视表。或者,您可以使用宏记录器动态重新创建数据透视表,并根据在其前面的同一页上创建的数据透视的边界对其进行定位。

此解决方案涉及一些VBA,但可以是复制/粘贴:

本质上,它涉及到“记录”pivot**的每次刷新。当pivot失败时,将不会记录条目。允许您识别失败的表

**您需要首先从成功运行中获取数据透视的列表/顺序

或者

您可以获得所有表格及其表格的列表,然后猜测重叠的内容:

或者

以下答案只需稍作调整即可满足我的需要(由于内存错误而删除了更新),然后阅读错误之前的最后一个表:

作为

在即时窗口中查看输出:


我认为这是不可能的,除非你事先对枢轴的结构有所了解。也就是说,按月份分组的数据透视不能超过12列。不过,重叠的部分可能并不局限于此。Excel鼓励您将数据透视表放在它们自己的工作表上,以确保没有重叠。要多少张?
Sub ref()

Dim Sheet As Worksheet, Pivot As PivotTable, result As Boolean
For Each Sheet In ThisWorkbook.Worksheets
    For Each Pivot In Sheet.PivotTables
        Debug.Print Sheet.name & "-->" & Pivot.name
        Pivot.RefreshTable
    Next
Next

End Sub