如何在 Excel 中只需单击单元格内容,即可快速筛选数据?
作者:互联网
2026-04-12
通常,在 Excel 中您可以使用筛选功能按需筛选数据;但在本文中,我将介绍如何通过单击单元格值来实现筛选。以下图数据为例:当您双击单元格 A2 时,所有与该单元格值匹配的记录将立即被筛选出来,如下图所示。

使用 VBA 代码通过单击单元格值筛选数据
使用 VBA 代码通过单击单元格值筛选数据
这里,我将为您提供一段 VBA 代码,用于通过单击单元格来筛选数据,请按以下步骤操作:
1. 首先,为您的数据指定一个单元格名称,请在名称框中输入一个单元格名称,然后按 Enter 键,参见下图:

2. 右键单击您希望通过单击单元格进行筛选的工作表标签,然后从上下文菜单中选择查看代码,在打开的 Microsoft Visual Basic for Applications 窗口中,将以下代码复制并粘贴到空白模块中:
VBA 代码:通过单击单元格值筛选数据:
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Updateby Extendoffice
Dim rgTable As Range
Dim rgData As Range
Dim xColumn As Integer
On Error Resume Next
Application.ScreenUpdating = False
Set rgTable = Range("mydata")
With rgTable
Set rgData = .Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count)
If Not Application.Intersect(ActiveCell, rgData.Cells) Is Nothing Then
xColumn = ActiveCell.Column - .Column + 1
If ActiveSheet.AutoFilterMode = False Then
.AutoFilter
End If
If ActiveSheet.AutoFilter.Filters(xColumn).On = True Then
.AutoFilter Field:=xColumn
Else
.AutoFilter Field:=xColumn, Criteria1:=ActiveCell.Value
End If
End If
End With
Set rgData = Nothing
Set rgTable = Nothing
Application.ScreenUpdating = True
End Sub

注意:上述代码中的 mydata 是您为数据区域定义的单元格名称,请根据实际需求修改。
3. 然后保存并关闭代码窗口,现在,当您双击要筛选的数据区域中的任意单元格时,其对应的记录将按如下截图所示被筛选出来:

借助 KUTOOLS AI 解锁 Excel 的神奇功能
- 智能执行:只需输入简单命令,即可执行单元格操作、分析数据并创建图表。
- 自定义公式:生成量身定制的公式,助您优化工作流程!
- VBA 编码:轻松编写并运行 VBA 代码。
- 公式解析:轻松掌握复杂公式,一目了然!
- 文本翻译:轻松打破电子表格中的语言障碍!
更多
相关标签:
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
Microsoft Excel:通过 API 实现电子表格自动化 - Openclaw Skills
Excel / XLSX: 专业电子表格自动化 - Openclaw Skills
Excel 周报:Power Query 报告 - Openclaw Skills
xlsx-cn: 高级 Excel 电子表格处理 - Openclaw Skills
xlsx-pro: 专业 Excel 自动化与财务建模 - Openclaw Skills
电子表格:Excel 和 Google 表格自动化 - Openclaw Skills
自动化 Excel:电子表格自动化与数据处理 - Openclaw Skills
CSV 转 Excel 转换器:专业格式化与多工作表支持 - Openclaw Skills
考勤表生成器:自动化人力资源 Excel 报表 - Openclaw Skills
如何在 Excel 中根据多个条件查找并返回最大值?
AI精选
