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”)…您知道可以录制宏吗?这为您提供了源代码的示例。