首页 > 解决方案 > 高级过滤器无法作为 worksheet_change 的一部分工作(by Val)

问题描述

一旦使用高级过滤器更改设置的标准,我正在尝试自动更新图表。

有三个特定的单元格在单独的工作表上设置标准范围,然后过滤这些新值,然后生成更新的图表。

即,当设置单元格在工作表 A 上的值发生变化时,我试图在工作表 B(图表表)上使用来自工作表 A(摘要表)的数据的高级过滤器,这将更新工作表 A 上的图表,该图表从过滤后的数据中获取数据表 B 上的表格

不幸的是,下面的代码(也使用查看表格而不是设置单元格范围的替代条目)没有按要求完成高级过滤器,即使如果我单独运行它,高级过滤器代码确实似乎过滤了表格(并因此更新图表)

任何帮助,将不胜感激...

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range

Set KeyCells = Worksheets("Summary Sheet").Range("O5:S6")

If Not Application.Intersect(KeyCells, Range(Target.Address)) _
       Is Nothing Then

Sheets("Graph Sheet").Select
Application.CutCopyMode = False
Application.CutCopyMode = False
Range("A7:S1002").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
    Range("G1:I2"), Unique:=False
Sheets("Summary Sheet").Select

End If

End Sub

替代代码

Sheets("Graph Sheet").Select
Application.CutCopyMode = False
Application.CutCopyMode = False
Range("Filter[#All]").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
    Range("G1:I2"), Unique:=False
Sheets("Summary Sheet").Select

代码“正在运行”时未出现错误消息,但表格未按所需值过滤

标签: excelvbafilter

解决方案


推荐阅读