Excel 2013 Pivot表在手动导航之前不会更改当前页面

时间:2013-02-18 15:04:38

标签: excel-vba pivot-table office-2013 office-2016 vba

我们有一小段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"

我们目前被迫使用此解决方法,但感觉很乱。

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

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

1 个答案:

答案 0 :(得分:2)

我不确定他们是如何成为"隐藏的"首先,我遇到了同样的问题并找到了this post

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