Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 使用单独工作表上的列表筛选透视表_Excel_Vba_Filter_Pivot Table - Fatal编程技术网

Excel 使用单独工作表上的列表筛选透视表

Excel 使用单独工作表上的列表筛选透视表,excel,vba,filter,pivot-table,Excel,Vba,Filter,Pivot Table,我有一个pivot表,它的设置完全符合需要,但是ID列非常广泛,所以我希望有一个宏,可以轻松地只过滤我想要的pivot表的ID。我想做的是能够运行一个宏,它查看sheet2上的所有ID,并转到sheet1上的透视表,只显示这些ID 我一直在寻找其他类似的话题。但这些问题和解决方案要么不适用于我正在尝试做的事情,要么它们超出了我的想象,我甚至没有意识到代码中发生了什么。我最初的想法是记录一个宏,我会选择几个ID来查看代码的样子,然后将宏上的ID更改为sheet2上ID所在的单元格;这对我来说不起作

我有一个pivot表,它的设置完全符合需要,但是ID列非常广泛,所以我希望有一个宏,可以轻松地只过滤我想要的pivot表的ID。我想做的是能够运行一个宏,它查看sheet2上的所有ID,并转到sheet1上的透视表,只显示这些ID

我一直在寻找其他类似的话题。但这些问题和解决方案要么不适用于我正在尝试做的事情,要么它们超出了我的想象,我甚至没有意识到代码中发生了什么。我最初的想法是记录一个宏,我会选择几个ID来查看代码的样子,然后将宏上的ID更改为sheet2上ID所在的单元格;这对我来说不起作用,所以我不确定这是一个好主意还是执行不力,或者我现在离底线太远了。但以下是我目前掌握的代码:

Sub report_filter_macro()
'
' report_filter_macro Macro
' filter only the IDs desired

    ActiveSheet.PivotTables("my_pivot").PivotFields("IDs").CurrentPage = _
        "(All)"
    With ActiveSheet.PivotTables("my_pivot").PivotFields("IDs")
        .PivotItems("000022").Visible = False ' does not show ID 000022 in the pivot table
        .PivotItems("000011").Visible = False ' does not show ID 000011 in the pivot table
    End With
    ActiveSheet.PivotTables("my_pivot").PivotFields("IDs"). _
        EnableMultiplePageItems = True ' allows multiple filters
End Sub
感谢您在这方面提供的帮助。

下面是一个示例,说明如何在数据中使用帮助列,然后您可以根据这些列筛选数据透视表。不需要VBA。这是杰夫·威尔的一封信。