在广泛的Excel文件(=约40张)中,有许多支点(从单个OLAP多维数据集中提取;因此所有支点都有一个连接)。通常,同一工作表中有几个数据透视表。
每当OLAP多维数据集发生更改时,可能需要很长时间才能找出哪些导致重叠,从而导致取消刷新。 有没有办法在刷新连接时找出许多数据透视表中的哪一个导致重叠?
边条件:将每个数据透视表保存在单独的工作表中不是一个选项(对于许多工作表),也不是将数据转换为多维数据集函数。
答案 0 :(得分:0)
您可以使用以下方法识别VBA中的范围:
Activesheet.pivottables(1).databodyrange.address
您还可以使用“相交”功能确定两个范围是否相交。
您必须进一步深入了解是否可以使用VBA移动数据透视表。或者,您可以使用宏录制器动态重新创建数据透视表,并根据在其之前的同一页面上创建的数据透视的边界来定位它们。
答案 1 :(得分:0)
此解决方案涉及一些VBA,但可以是复制/粘贴:
https://exceleratorbi.com.au/find-overlapping-pivot-tables/
基本上它涉及“记录”每个刷新点数**。当您的数据透视失败时,将不会记录该条目。允许您识别失败的表。
**您需要先从成功的运行中获取枢轴列表/顺序
替代地
您可以获取所有表格及其表格的列表,然后猜测重叠的内容:
https://excelreality.blogspot.nl/2014/08/finding-source-pivot-table-cannot.html
替代地
以下答案适合我的需要进行微调(由于内存错误而删除了更新),然后在错误之前读取最后一个表: https://superuser.com/questions/703847/how-do-i-find-which-pivot-tables-has-an-error-in-excel-2010
as
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
在即时窗口中查看输出: