Vba 用于筛选透视表的宏
我有一个数据集,我想点击列a中的一个单元格,它会过滤不同工作表上的透视表。到目前为止,我有以下代码:Vba 用于筛选透视表的宏,vba,pivot-table,Vba,Pivot Table,我有一个数据集,我想点击列a中的一个单元格,它会过滤不同工作表上的透视表。到目前为止,我有以下代码: Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Selection.Count = 1 Then If Not Intersect(Target, Range("A2")) Is Nothing Then Sheet
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Selection.Count = 1 Then
If Not Intersect(Target, Range("A2")) Is Nothing Then
Sheets("Labor Detail").Select
ActiveSheet.PivotTables("PivotTable1").PivotFields("WBS1").ClearAllFilters
ActiveSheet.PivotTables("PivotTable1").PivotFields("WBS1").CurrentPage = Range("A2").Value
End If
End If
End Sub
它能满足我的要求,但只适用于一个细胞。我希望能够单击列A中的任何单元格,并将单元格值筛选到透视表中。如何指定一个范围而不是一个单元格?请尝试以下操作:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 1 And Target.Value <> "" Then
Sheets("Labor Detail").Select
ActiveSheet.PivotTables("PivotTable1").PivotFields("WBS1").ClearAllFilters
ActiveSheet.PivotTables("PivotTable1").PivotFields("WBS1").CurrentPage = Target.Value
End If
End Sub
选项显式
专用子工作表\u选择更改(ByVal目标作为范围)
如果Target.Column=1且Target.Value为“”,则
工作表(“人工详细信息”)。选择
ActiveSheet.PivotTables(“数据透视表1”).PivotFields(“WBS1”).ClearAllFilters
ActiveSheet.PivotTables(“数据透视表1”).PivotFields(“WBS1”).CurrentPage=Target.Value
如果结束
端接头
我去掉了
Selection.Count=1
,因为我不认为这真的有什么用。相反,我正在针对Target.Value
进行测试,以确保您有筛选数据透视表的依据。您还应该尝试不使用Select。只需直接访问数据透视表,如:工作表(“人工明细”)。数据透视表(“数据透视表1”)。数据透视字段(“WBS1”)。