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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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 - Fatal编程技术网

Excel表格-跨多个工作表复制自动筛选

Excel表格-跨多个工作表复制自动筛选,excel,vba,Excel,Vba,我有5个不同的表,有不同的数据集,但是我想在同一天过滤它们。我正在寻找一种通过VBA或高级过滤器(?)实现自动化的方法,我正在努力找到一种方法 我想要的是对一张“主”工作表应用一个过滤器,其余4张工作表自动应用与主工作表中相同的日期过滤器。例如,如果我想显示2015年11月的所有数据,如果我在表1中过滤这些数据,希望表2、3和4也会显示2015年11月的数据 我在网上找到了许多VBA解决方案,它们在编码中指定了过滤条件,但这些条件会根据用户的要求而改变。有没有办法从母版纸上复制整个过滤器?这是我

我有5个不同的表,有不同的数据集,但是我想在同一天过滤它们。我正在寻找一种通过VBA或高级过滤器(?)实现自动化的方法,我正在努力找到一种方法

我想要的是对一张“主”工作表应用一个过滤器,其余4张工作表自动应用与主工作表中相同的日期过滤器。例如,如果我想显示2015年11月的所有数据,如果我在表1中过滤这些数据,希望表2、3和4也会显示2015年11月的数据

我在网上找到了许多VBA解决方案,它们在编码中指定了过滤条件,但这些条件会根据用户的要求而改变。有没有办法从母版纸上复制整个过滤器?这是我为内部编码的标准找到的代码

Private Sub Worksheet_Change(ByVal Target As Range)
    ActiveSheet.ListObjects("Table4").Range.AutoFilter Field:=3, Criteria1:="=True"
End Sub 

提前谢谢

假设您在主工作表中仅选择一个条件,则可以使用主工作表中的VBA组合框控件来填充筛选条件。作为下一步,您可以为ComboBox change事件编写如下所示的代码,将过滤器应用于所有剩余的四个工作表。
在此组合框更改事件宏中,您可以获取组合框的值,并将其作为所有四张图纸的筛选条件传递,如下所示。请注意,在我的例子中,我考虑过只有两列的表,第一列在每个工作表中都有一个日期筛选条件,而表中的第二列有一些伪值

Private Sub ComboBox21_Change()
Date = ComboBox21.Value
Worksheets("Sheet1").Range("Table1").AutoFilter Field:=1, Operator:= _
        xlFilterValues, Criteria2:=Array(1, Date)
Worksheets("Sheet2").Range("Table2").AutoFilter Field:=1, Operator:= _
        xlFilterValues, Criteria2:=Array(1, Date)
Worksheets("Sheet3").Range("Table3").AutoFilter Field:=1, Operator:= _
        xlFilterValues, Criteria2:=Array(1, Date)
Worksheets("Sheet4").Range("Table4").AutoFilter Field:=1, Operator:= _
        xlFilterValues, Criteria2:=Array(1, Date)
End Sub

处理所有不同类型的过滤器似乎需要大量的工作,但是您可以使用循环过滤器并将其应用到其他表中添加一些示例