我有一个数据透视表,我想在其中选择第一个条目,运行宏,然后选择下一个条目并再次运行宏,依此类推,直到列表完成。
我有一个名为"实体名称"它是一个报告过滤器,大约有30个不同的实体。我试着在下一张表中从数据库中选择名称:
好的,这是我到目前为止的代码,但它没有按预期工作。我没有Pivot循环测试它,一切都很好,但是我必须手动循环遍历数据透视表atm:
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Set pt = Sheet2.PivotTables("PivotTable14")
Set pf = pt.PivotFields("Entity Name")
For Each pi In pf.PivotItems
Windows("SOW.xlsm").Activate
Sheets(1).Copy After:=Sheets(Sheets.Count)
Windows("2Copy of Coalition FY17 Database - Global Wallet - Switzerland.xlsx").Activate
Range("C41:J79").Copy
Windows("SOW.xlsm").Activate
Range("D5").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Next pi
End Sub
答案 0 :(得分:0)
这是一些相当通用的代码,用于循环遍历指定页面字段中存在的所有项目:
Sub LoopPivotPageFields()
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Set pt = Sheet1.PivotTables("PivotTable1")
Set pf = pt.PivotFields("Entity Name")
For Each pi In pf.PivotItems
'Do something with the pivot item
Debug.Print "Do something with pivot item " & pi.Name
' For example: set page filter
pf.ClearAllFilters
pf.CurrentPage = pi.Name
Debug.Print "Pivot table is filtered to page item: " & pi.Name
Next pi
End Sub
将“行动”替换为您需要对每个项目执行的操作......