|在本文中,您将学习如何根据单元格的选择来过滤数据。

您需要执行以下步骤:

单击“开发人员”选项卡。从“代码”组中,选择“ Visual Basic”

img1

在当前工作表中输入以下代码(在我们的示例中为sheet1)

私人子Worksheet_BeforeDoubleClick(ByVal目标为范围,取消为布尔值)

昏暗的xcolumn作为整数

Dim xvalue作为字符串

xcolumn = ActiveCell.Column

xvalue = ActiveCell.Value

如果Application.Intersect(ActiveCell,[headers])没有,则

如果ActiveCell.Value <>“”然后

ActiveSheet.Range(“ A:d”)。AutoFilter字段:= xcolumn,Criteria1:= xvalue

取消=真

如果

结束

如果

结束

结束子

===

===

私有子Worksheet_SelectionChange(按目标的ByVal目标)

昏暗的行号作为整数

行号= ActiveCell.Row

如果Application.Intersect(ActiveCell,[headers])没有,则

如果ActiveCell.Value <>“”然后

Range(“ A1:D13”)。Interior.ColorIndex = xlNone

Range(“ A”&rownumber&“:D”&rownumber).Interior.ColorIndex = 6

如果

结束

如果

结束

结束子

img2

注意:上面代码中的标题代表范围A1:D1的命名范围,您可以简单地选择范围A1:D1并在“名称”框中键入标题,也可以在“公式”选项卡中使用“定义的名称”

img3

每当用户在任何一个单元格上双击时,BeforeDoubleClick *事件都将触发,它将改变对搜索的过滤。

  • 如果要按产品C筛选数据,则可以轻松双击单元格D4来筛选搜索。

img4

如果我们要按列C和产品KFCWW筛选搜索,那么我们将双击单元格C4来缩小数据范围。

img5

每当用户选择任何单元格时,都会激活SelectionChange *事件,并且它将颜色从白色更改为黄色。如果活动单元为空,则代码将不会运行。

  • 如果单击单元格B3,则该行将以黄色突出显示。请参阅下面的快照

img6

在这里,您可以看到编辑栏显示选定的单元格,即单元格B3。这样,您可以单击以突出显示行,并使用VBA代码根据单元格的选择对数据进行过滤。