如何通过VBA中的组合框应用数据透视表的过滤器?

时间:2013-10-03 14:05:17

标签: vba excel-vba excel

在数据透视表Facility字段中,有9种不同的工具以及如何通过组合框选择特定工具(使用Excel 2007)。

以下是我尝试的代码,但它正在选择所有9个设施。

        .PivotFields("ProjectCode ").Orientation = xlRowField

        With .PivotFields("Facility ") = ComboBox1.Text
        '   .PivotItems("ABC ").Visible = True
        '   .PivotItems("DLF ").Visible = False
        '   .PivotItems("EON ").Visible = False
        '   .PivotItems("XYZ ").Visible = False
        '   .PivotItems("SEZ ").Visible = False
        '   .PivotItems("QAZ ").Visible = False
        '   .PivotItems("QWE ").Visible = False
        '   .PivotItems("RMZ ").Visible = False
        '   .PivotItems("POI ").Visible = False

        End With

        .PivotFields("Facility ").Orientation = xlColumnField`  

从sheet1中的命名范围中选择ComBox1源数据。

enter image description here

为所有9个设施提供所需的结果,
现在如何制作一个从ComboBox中获取价值的数据透视表? 请帮忙。

1 个答案:

答案 0 :(得分:0)

以下代码应该有效。它将在单击命令按钮时运行。

Private Sub CommandButton1_Click()
    With ActiveSheet.PivotTables("Facility").PivotFields("Facility ")
        .PivotItems(ComboBox1.Text).Visible = True
        For Each Item In .PivotItems
            If Item.Value <> ComboBox1.Text Then
                Item.Visible = False
            End If
        Next
    End With
    Unload UserForm1
End Sub