Sid*_*out 9 excel vba excel-vba powerpivot
免责声明:这个问题发布在msdn论坛,但由于我没有得到任何回复(令人惊讶),我也在这里交叉发布.在尝试尝试此问题之前,您可能需要检查该链接.如果在该链接中发布解决方案,我不希望您浪费您的时间:)
问题:我想在报告过滤器中找到字段名称.所以我在寻找RegionCountryName,Cityname而且ProductKey.报告过滤器是动态的,可以更改.
截图:

我尝试了什么:我已经检查了Power Pivot的每个属性,但是没有我能找到的属性可以让我循环遍历power pivot的字段.
我甚至尝试过这段代码,但它显然给了我一个错误 Set pf = pt.PageFields(1)
Sub Sample()
Dim pt As PivotTable, pi As PivotItem, pf As PivotField
Dim lLoop As Long
Set pt = Sheet1.PivotTables(1)
Set pf = pt.PageFields(1)
For Each pi In pf.PivotItems
Debug.Print pi.Name
Next pi
End Sub
Run Code Online (Sandbox Code Playgroud)
错误ScreenShot

那我错过了什么?或者我应该采取不同的方法吗?
编辑
如果有人想试验它,可以从这里下载文件我正在查看工作Inventory表.
经过一些测试,似乎您可以通过列出 PivotFields 并检查其 Orientation 属性的值是否等于 XlPageField 来获取页面过滤器字段的列表。尝试下面的代码:
Sub Test()
Dim pt as PivotTable
Dim pf as PivotFields
set pt=Sheets("test").PivotTables(1)
For each pf in pt.PivotFields
If pf.Orientation=xlPageField Then
Debug.Print pf.Name
End If
Next pf
End Sub
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助