2016-09-19 4 views
0

В течение жизни я не могу понять, как сделать цикл для EnableMultiplePageItems для всех кубических полей. Поэтому я должен прибегать к чему-то подобному.«Для» цикла для CubeFields в PowerPivot

Sub MultipleFilter() 

ActiveSheet.PivotTables("PivotTable1").CubeFields(1).EnableMultiplePageItems = True 
ActiveSheet.PivotTables("PivotTable1").CubeFields(2).EnableMultiplePageItems = True 
ActiveSheet.PivotTables("PivotTable1").CubeFields(3).EnableMultiplePageItems = True 
ActiveSheet.PivotTables("PivotTable1").CubeFields(4).EnableMultiplePageItems = True 
ActiveSheet.PivotTables("PivotTable1").CubeFields(5).EnableMultiplePageItems = True 
ActiveSheet.PivotTables("PivotTable1").CubeFields(6).EnableMultiplePageItems = True 
ActiveSheet.PivotTables("PivotTable1").CubeFields(7).EnableMultiplePageItems = True 
ActiveSheet.PivotTables("PivotTable1").CubeFields(8).EnableMultiplePageItems = True 
ActiveSheet.PivotTables("PivotTable1").CubeFields(9).EnableMultiplePageItems = True 
ActiveSheet.PivotTables("PivotTable1").CubeFields(10).EnableMultiplePageItems = True 
ActiveSheet.PivotTables("PivotTable1").CubeFields(11).EnableMultiplePageItems = True 

End Sub 

Любая помощь будет оценена!

ответ

1

См: https://msdn.microsoft.com/en-us/library/office/ff193066.aspx

Dim objCubeFld 
For Each objCubeFld In ActiveSheet.PivotTables("PivotTable1").CubeFields 
    objCubeFld.EnableMultiplePageItems = True 
Next objCubeFld 
+1

Спасибо за ответ, Тим. Код, который вы указали, не работает. Я получаю ошибку времени выполнения 1004 «Определенная приложением или объектная ошибка». Не следует ли «Dim objCubFld» следовать «как»? Я попробовал «как CubeField» и «как CubeFields» и получил ошибки. – clayjm

0

Я думаю, это потому, что EnableMultiplePageItems не работает мер. Циклирование в значительной степени, как и следовало ожидать, но вы захотите проверить свойство CubeFieldType для каждого и разрешите использовать свойство только для тех, у кого есть тип xlHeirarchy.

Dim cf As CubeField 

For Each cf In ActiveSheet.PivotTables("PivotTable4").CubeFields 
    If cf.CubeFieldType = xlHierarchy Then 
     cf.EnableMultiplePageItems = True 
    End If 
Next cf 

Для получения дополнительной информации: https://msdn.microsoft.com/en-us/library/office/ff835244.aspx https://msdn.microsoft.com/en-us/library/office/ff823030.aspx