![如何启用 Excel 工作表以自动更新我已应用的筛选器](https://linux22.com/image/1489008/%E5%A6%82%E4%BD%95%E5%90%AF%E7%94%A8%20Excel%20%E5%B7%A5%E4%BD%9C%E8%A1%A8%E4%BB%A5%E8%87%AA%E5%8A%A8%E6%9B%B4%E6%96%B0%E6%88%91%E5%B7%B2%E5%BA%94%E7%94%A8%E7%9A%84%E7%AD%9B%E9%80%89%E5%99%A8.png)
我查看了其他线程,但无济于事。我的工作簿中有几张表,其中一张是数据表,其他的从中提取数据。我在这些表中设置了一个过滤器,不显示任何显示为“false”的内容,这很好,直到我将数据添加到主数据表中。我希望有人能帮助我让其他表自动更新、显示/取消显示数据,而不必我一直重新应用过滤器!我希望这有意义!
我曾尝试使用此代码(从本网站的其他线程中找到),但似乎对我不起作用,我做错了什么!
Private Sub Worksheet_Change(ByVal Target As Range)
If Me.FilterMode = True Then
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
With ActiveWorkbook
.CustomViews.Add ViewName:="Mine", RowColSettings:=True
Me.AutoFilterMode = False
.CustomViews("Mine").Show
.CustomViews("Mine").Delete
End With
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End If
End Sub
答案1
您正在使用
Private Sub Worksheet_Change(ByVal Target As Range)
确实如此扳机当特定目标发生变化时触发。您尚未根据任何条件检查目标,因此不会触发。您应该检查目标变化是否在您的过滤范围内,例如
If Not Intersect(Target, Range("A1:A10") is Nothing Then