在大量的Excel文件(大约40张)中,有许多数据透视表(从单个OLAP立方体中提取;因此所有数据透视表都有一个连接)。通常,同一工作表中有多个数据透视表。每当OLAP多维数据集发生更改时,可能需要很长时间才能确定哪些更改会导致重叠,从而导致取消刷新。刷新连接时,是否有办法确定多个透视表中的哪一个会导致重叠?
**附带条件:**将每个透视表保存在单独的工作表中不是一个选项(对于许多工作表),也不能将数据转换为多维数据集函数。
xfb7svmp1#
可以使用以下命令标识VBA中的范围:
Activesheet.pivottables(1).databodyrange.address
也可以使用“相交”功能来确定两个范围是否相交。http://www.globaliconnect.com/excel/index.php?option=com_content&view=article&id=154:referencing-an-excel-pivot-table-range-using-vba&catid=79&Itemid=475您必须进一步挖掘,看看是否可以使用VBA移动透视表。或者,您可以使用宏记录器动态地重新创建透视表,并根据在同一页上创建的透视表的边界来定位它们。
ifsvaxew2#
此解决方案涉及一些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作为
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
在即时窗口中查看输出:Where does VBA Debug.Print log to?
2条答案
按热度按时间xfb7svmp1#
可以使用以下命令标识VBA中的范围:
也可以使用“相交”功能来确定两个范围是否相交。
http://www.globaliconnect.com/excel/index.php?option=com_content&view=article&id=154:referencing-an-excel-pivot-table-range-using-vba&catid=79&Itemid=475
您必须进一步挖掘,看看是否可以使用VBA移动透视表。或者,您可以使用宏记录器动态地重新创建透视表,并根据在同一页上创建的透视表的边界来定位它们。
ifsvaxew2#
此解决方案涉及一些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
作为
在即时窗口中查看输出:
Where does VBA Debug.Print log to?