3

我们有一小段 VBA 代码可以完美运行多年。本质上是:

Me.PivotTables("APivot").PivotFields("AField").CurrentPage = "Some text"

这一直有效,直到 Excel 2013,该行将失败并出现非特定错误:

运行时错误 5:
无效的过程调用或参数。

通过反复试验,我们发现在 Excel 2013 中,在用户使用 Excel 界面手动导航到该页面之前,您无法使用代码导航到数据透视表页面。一旦用户导航到一个页面,使用代码导航到该页面将始终成功(直到您关闭工作簿)。因此,为了让代码能够导航到任何页面,我们首先需要用户手动浏览所有页面。

一种解决方法是更改​​底层单元格的值:

Me.PivotTables("APivot").PivotFields("AField").CurrentPage.LabelRange.Value = "Some text"

我们目前被迫使用这种解决方法,但感觉很hackish。

Excel 2013 中究竟是什么导致了这种行为?现在是否需要先做一些事情才能导航到页面(戳一些东西,以某种方式加载一些数据等)?

编辑:Office 2016 中出现同样的问题。

4

1 回答 1

2

我不确定它们最初是如何“隐藏”的,但我遇到了同样的问题并找到了这篇文章

那里的解决方案是右键单击过滤器字段(在电子表格单元格上,而不是字段列表上)并在字段设置下,确保项目没有被隐藏。

于 2016-08-11T21:16:23.453 回答