我是VBA的新手...我正在尝试编写一个宏,它将清除名为“Product Family”的数据透视表过滤器中的所有选项,并仅选择名称包含在单元格“B33”中的项目 . 我在一张表“sheet8”中引用数据透视表,并尝试更改“仪表板”上的图表 .
这是代码......
Sub thisisalsotemp()
'
' thisisalsotemp Macro
'
'
Sheets("Dashboard").Select
ActiveSheet.ChartObjects("Chart 1").Activate
Sheet8.PivotTables("capbylp").PivotFields("Product Family").PivotFields.ClearAllFilters
With Sheet8.PivotTables("capbylp").PivotFields("Product Family")
.PivotItems(Range("B33")).Visible = True
End With
End Sub
错误位于以下行:Sheet8.PivotTables(“capbylp”) . PivotFields(“Product Family”) . PivotFields.ClearAllFilters
错误消息是:对象不支持此属性或方法
@SeanCheshire:谢谢你的帮助 . 我觉得这更接近我想要的东西 . 但是,我无法让它发挥作用 . 我玩了一下它并且更近了 . 这是我的...
Sub thisisalsotemp2()
Sheets("Dashboard").Select
Sheet8.PivotTables("capbylp").PivotFields("Product Family") = Range("B33")
End Sub
错误1004读取:无法设置pivottable类的pivotfields属性
在行中:Sheet8.PivotTables(“capbylp”) . PivotFields(“Product Family”)= Range(“B33”)
2 回答
这有点相关;我想在用户制作时清除多个选择 . 显然,设置VisibleItemsList可以做到这一点 .
你需要设置
CurrentPage
(你不应该先清除它) .使用代码中显示的内容,我会有类似的东西:
(为便于阅读,分为2行)