Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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 AdvancedFilter函数的语法_Excel_Vba - Fatal编程技术网

Excel AdvancedFilter函数的语法

Excel AdvancedFilter函数的语法,excel,vba,Excel,Vba,在应用一些逻辑条件后,我使用高级过滤器将工作表主工作表复制到另一个工作表编辑新闻。我可以使用具有以下参数的UI手动执行此操作: 列表范围:“主工作表”$A:$N 标准范围:$P$2:$S$4 抄送:$A:$N 仅限唯一记录:未选中 我现在想把它与主工作表更改事件联系起来。文档不太清楚在哪里指定列表范围,我尝试了以下方法: Private Sub WorkSheet_Change(ByVal Target As Range) Debug.Print Target Range("

在应用一些逻辑条件后,我使用高级过滤器将工作表
主工作表
复制到另一个工作表
编辑新闻
。我可以使用具有以下参数的UI手动执行此操作:

  • 列表范围:“主工作表”$A:$N
  • 标准范围:$P$2:$S$4
  • 抄送:$A:$N
  • 仅限唯一记录:未选中
我现在想把它与
主工作表
更改
事件联系起来。文档不太清楚在哪里指定
列表范围
,我尝试了以下方法:

Private Sub WorkSheet_Change(ByVal Target As Range)
  Debug.Print Target
  Range("'Main Sheet'!A:N").AdvancedFilter Action:=xlFilterCopy, _
     CopyToRange:=Range("'Editor News'!A:N"), _
     CriteriaRange:=Range("'Editor News'!P2:S4"), Unique:=False
End Sub
上述结果导致运行时错误“1004”方法“对象范围”工作表失败


如何在代码中使用
AdvancedFilter

不要将工作表名称包含在范围内,请使用工作表/工作表指定工作表

Private Sub WorkSheet_Change(ByVal Target As Range)
  Debug.Print Target
  Sheets("Main Sheet").Range("A:N").AdvancedFilter Action:=xlFilterCopy, _
     CopyToRange:=Sheets("Editor News").Range("A:N"), _
     CriteriaRange:=Sheets("Editor News").Range("P2:S4"), Unique:=False
End Sub

在这种情况下,您是否必须准确地指定要过滤的范围?范围(“'Main Sheet'!A1:N1000”)…您知道可以录制宏吗?这为您提供了源代码的示例。