Excel 写入VBA以过滤OLAP数据透视表字段

Excel 写入VBA以过滤OLAP数据透视表字段,excel,vba,pivot-table,olap-cube,Excel,Vba,Pivot Table,Olap Cube,我是VBA新手。我有一个excel文件,其中包含由OLAP多维数据集创建的数据透视表。 我尝试创建一个变量来过滤透视表中的特定列 我使用了Record宏,这是我得到的: Sub Macro1() ActiveSheet.PivotTables("PivotTable1").PivotFields( _ "[Item].[ItemByProducer].[ProducerName]").VisibleItemsList = Arra

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

我使用了Record宏,这是我得到的:

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”
的名称更改为您正在使用的工作表即可<代码>活动表不是一个好主意-:


将变量放入数组-
producers=array(“ProducerA”、“ProducerB”、“ProducerC”)

然后用下面的代码对它们进行循环。只需确保将
“NameOfWorksheet”
的名称更改为您正在使用的工作表即可<代码>活动表不是一个好主意-:


您可以将字符串与
&
“[Item].[ItemByProducer].[ProducerName].&[”&yourvariable&“]”连接起来。
。实际上,这似乎完成了Sub Macro1()活动表。数据透视表(“数据透视表1”)。数据透视字段(“[Item].[ItemByProducerName]”)。VisibleItemsList=Array(“[Item])。[ItemByProducer].[ProducerName].&[“&stringvariable&“]”End Sub您可以将字符串与
&
“[Item].[ItemByProducerName].&[“&yourvariable&“]”连接起来。
。实际上,这似乎完成了Sub Macro1()ActiveSheet.PivotTables(“PivotTable1”).数据透视字段([Item].[ItemByProducerName]。)。[ProducerName]”。VisibleItemsList=数组(“[Item].[ItemByProducerName].&stringvariable&“])结束子
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