VBA 根据Find方法根据特定内容查找单元格
http://club.excelhome.net/thread-940744-1-1.html
2. Find方法的语法
[语法]
<单元格区域>.Find (What,[After],[LookIn],[LookAt],[SearchOrder],[SearchDirection],[MatchCase],[MatchByte],[SearchFormat])
'__________________________________________________________________________________________________
<单元格区域>.Find (要查找的数据,开始查找的位置,查找的范围类型,完全匹配还是部分匹配,行列方式查找,向前向后查找,区分大小写,全角或半角,查找格式)
(5)参数LookAt,可选。可以为以下常量之一:XlWhole或者xlPart,用来指定所查找的数据是与单元格内容完全匹配还是部分匹配,默认值为xlPart。对应于“查找与替换”对话框中,“单元格匹配”复选框。
案例:根据工作表名称查找标题栏中的对应标题的单元格
源表:
VBA语句:
Option Explicit Option Compare Text Sub 根据内容查找单元格() Dim sSheet As Worksheet Dim eachSheet As Worksheet Dim findRange As Range Dim columnCount As Integer Set sSheet = Worksheets("数据") '获取工作表总列数 columnCount = sSheet.UsedRange.Cells.EntireColumn.Count For Each eachSheet In Worksheets '只查找A1单元格所在的整行 Set findRange = sSheet.Range("A1").EntireRow.Find(eachSheet.Name, , , xlWhole) Debug.Print findRange.Column Next eachSheet End Sub
改进版:
Option Explicit Option Compare Text Sub 根据内容查找单元格() Dim sSheet As Worksheet Dim eachSheet As Worksheet Dim findRange As Range Dim columnCount As Integer Set sSheet = Worksheets("Sheet2") '获取工作表总列数 columnCount = sSheet.UsedRange.Cells.EntireColumn.Count For Each eachSheet In Worksheets '只查找A1单元格所在的整行 Set findRange = sSheet.Range("A1").EntireRow.Find(eachSheet.Name, , , xlWhole) '可能找不到符合的单元格,因此使用前先判断下 If Not findRange Is Nothing Then Debug.Print findRange.Column End If Next eachSheet End Sub
如果可能存在没有找到的情况,如果直接使用它,没有找到就会导致程序报错,不过可以利用报错来终止程序运行,相当于抛出运行时异常,提示用户需要检查错误,也是一种策略,所以使用时根据需要综合考虑上面2种方案吧
运行后:
https://www.cnblogs.com/xpvincent/p/7424694.html VBA中FIND方法的使用说明,不错的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)