如何在Excel中定位包含特定文本/值的单元格范围?
在Excel中查询已排序分组的机场名称对应单元格起止范围的方法
方法一:用MATCH函数直接计算起止行
假设机场名称存放在A列,且已按字母升序分组排列:
- 查找
LAX的起始行号:在任意空白单元格输入公式=MATCH("LAX",A:A,0),回车后得到第一个LAX所在的行号。 - 查找
LAX的结束行号:输入公式=MATCH("LAX",A:A,1),因为数据是升序分组,这个近似匹配会返回最后一个LAX的行号。 - 直接生成单元格范围文本:输入公式
="A"&MATCH("LAX",A:A,0)&":A"&MATCH("LAX",A:A,1),就能得到类似A15:A32这样的完整范围。
方法二:通过查找功能快速选中并查看范围
- 选中A列任意单元格,按
Ctrl+F打开查找对话框,输入LAX。 - 点击「查找全部」,对话框底部会列出所有匹配的单元格。
- 按住
Ctrl+A选中所有查找结果,此时Excel会自动高亮这些单元格,编辑栏左侧的名称框会直接显示对应的单元格范围。
方法三:用VBA批量查询(适合多次查询场景)
如果需要频繁查询不同机场,可借助VBA快速获取结果:
- 按
Alt+F11打开VBA编辑器,右键点击当前工作簿,选择「插入」→「模块」。 - 粘贴以下代码:
Sub GetAirportRange() Dim targetAirport As String Dim startRow As Long, endRow As Long targetAirport = InputBox("请输入要查询的机场代码:") ' 查找起始行 startRow = Range("A:A").Find(what:=targetAirport, LookIn:=xlValues, LookAt:=xlWhole).Row ' 查找结束行(反向查找) endRow = Range("A:A").Find(what:=targetAirport, LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlPrevious).Row MsgBox targetAirport & " 对应的单元格范围是:A" & startRow & ":A" & endRow End Sub
- 按
F5运行宏,输入要查询的机场代码,弹窗会直接显示结果。
内容的提问来源于stack exchange,提问作者sanjay mc'clough
相关产品推荐
相关产品推荐

