我正在为此寻找解决方案:
我有一个wookbook,其中有多个工作表,其中有多个数据透视表。我只想更改一个特定数据透视表的过滤器。
如果我使用ActiveSheet-Method,这似乎有效,但是当我启动此代码时,此工作表未处于活动状态,因此我尝试通过对其进行更改来更改此过滤器:
Sub Jahresübergang2()
Dim Jahresuebergang2 As Worksheet
Set Jahresuebergang2 = Worksheets(11)
Jahresuebergang2.PivotTables("Name of Pivot Table").PivotFields("[Incident resolved].[Period].[Year]").VisibleItemsList = Array("[Incident resolved].[Period].[Year].&[2017]")
End Sub
我得到运行时错误1004:运行时错误' 1004':方法'数据透视表'对象' _worksheet'失败
就像我使用错误的对象语法来更改只有一个表的过滤器一样。
这是makro录音机正在做的事情:
Sub Makro1()
'
' Makro1 Makro
'
'
ActiveSheet.PivotTables("Name of Pivot Table").PivotFields( _
"[Incident resolved].[Year].[Year]").ClearAllFilters
ActiveSheet.PivotTables("Name of Pivot Table").PivotFields( _
"[Incident resolved].[Year].[Year]").CurrentPageName = _
"[Incident resolved].[Year].&[2017]"
End Sub
您看到:我不想使用活动表格方法,因为当我想要执行此makro时,此工作表无效。
非常感谢你的帮助!
PS:我使用Excel 365
答案 0 :(得分:0)
您的代码已[事件已解决]。 [期间] 。[年]而宏录制器已[事件已解决]。 [年] 。[年] < / p>
将您的代码更改为[事件已解决]。 [年] 。[年]并重试。
答案 1 :(得分:0)
这是我的解决方案:
TabelleX.Activate(X表示张数)
激活工作表。唯一的问题可能是在makro过程中该表将在监视器上处于活动状态。我解决了这个问题:
Application.ScreenUpdating = False (码) Application.ScreenUpdating = True
因此激活不会在屏幕上更新。