写入 VBA 以通过 OLAP Pivot Table 字段进行过滤
Writing VBA to filter through OLAP Pivot Table Fields
我是 VBA 的新手。我有一个 excel 文件,其中包含一个由 OLAP Cube 创建的数据透视表 table。
我尝试创建一个变量来过滤 Pivot Table.
中的特定列
我使用了录制宏,这就是我得到的:
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"
的名称更改为您正在使用的 sheet。 ActiveSheet
不是个好主意 - How to avoid using Select in Excel VBA:
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
我是 VBA 的新手。我有一个 excel 文件,其中包含一个由 OLAP Cube 创建的数据透视表 table。 我尝试创建一个变量来过滤 Pivot Table.
中的特定列我使用了录制宏,这就是我得到的:
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"
的名称更改为您正在使用的 sheet。 ActiveSheet
不是个好主意 - How to avoid using Select in Excel VBA:
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