【发布时间】:2017-07-27 22:57:52
【问题描述】:
我正在尝试通过 VBA 自动过滤 Excel 表格。
该表有许多行,当前位于 Sheet2 的 B5:N584 中。 表格的第一列有“国家”作为标题,这就是我要应用过滤器的列。我希望表格根据用户输入的国家名称自动过滤。国家名称将在 Sheet2 的单元格 B3 上,现在定义为“=Sheet1!A1”,这是用户输入国家/地区的地方。
我希望它的工作方式是: - 用户在 Sheet1 的单元格 A1 上写一个国家名称。 - 国家自动拉到 Sheet2 的单元格 B3。 - 根据 Sheet2 的单元格 B3 的内容过滤表格,在第一列中。
这是我写的 VBA 代码:
Public Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("B3").Address Then
Range("B5:N584").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("B2:B3")
End If
End Sub
在单元格 B2 上,我写了“国家”,就像在列标题中一样。
我所做的几乎可以工作。唯一的问题是过滤器没有自动应用。单元格 A1 上用户输入的国家/地区被拉到 Sheet2 的单元格 B3 中,但直到我单击单元格 B3 的公式栏并单击 Enter 而不更改任何内容时才会应用过滤器 - 然后过滤器将应用于下表。
我想知道是什么阻止了表格自动检测单元格 B2 上有一个新国家,而无需单击单元格并按 ENTER。
谢谢。
【问题讨论】: