正在编写VBA以筛选OLAP数据透视表字段



我是VBA新手。我有一个excel文件,里面有一个由OLAP多维数据集创建的数据透视表。我试图创建一个变量来过滤数据透视表中的特定列。

我使用了记录宏,这就是我所拥有的:

Sub Macro1()
ActiveSheet.PivotTables("PivotTable1").PivotFields( _
"[Item].[ItemByProducer].[ProducerName]").VisibleItemsList = Array( _
"[Item].[ItemByProducer].[ProducerName].&[the name of the producer]")
End Sub

该宏对特定的生产者很有效,但我想创建一个字符串类型的变量,在其中我也可以通过其他生产者进行筛选。

我怎样才能做到这一点?

将变量放入数组-producers = Array("ProducerA", "ProducerB", "ProducerC")

然后用下面的代码对它们进行循环。只需确保将"NameOfWorksheet"的名称更改为您正在使用的图纸即可。ActiveSheet不是一个好主意-如何避免在Excel VBA中使用Select:

Sub TestMe()
Dim producers As Variant
producers = Array("ProducerA", "ProducerB", "ProducerC")
Dim producer As Variant

For Each producer In producers
ThisWorkbook.Worksheets("NameOfWorksheet").PivotTables("PivotTable1").PivotFields( _
"[Item].[ItemByProducer].[ProducerName]").VisibleItemsList = Array( _
"[Item].[ItemByProducer].[ProducerName].&[" & producer & "]")
Next    
End Sub