HI,大家好,我是星光。这章继续给大家分享VBA常用对象之单元格的编程技巧。虽然没有自古以来,但依然众所周知的是,在Excel中有一个很常用的功能:查找与替换。而在VBA编程中也有与之对应的两个方法:Find和Replace。
我们先来聊Find,相比于Replace它更常用。
1 丨
基本语法
Find是单元格对象的方法,默认在指定的区域中查找包含某个数据的单元格。若找到符合条件的数据,则返回包含该数据的单元格;若未找到符合条件的,则返回Nothing。
语法格式如下▼
.Find (What,[After],[LookIn],[LookAt],[SearchOrder],[SearchDirection],[MatchCase],[MatchByte],[SearchFormat])
语法看的一脸懵逼?都是洋文惹的锅!其实,以上参数基本对应了查找对话框中的各个选项。
我来给您翻译一下:
.Find (查找值,[查找开始位置],[查找范围的类型],[匹配方式完全匹配还是部分匹配],[查找方式行或列],[查找方向前或后],[是否区分大小写],[全角或半角],[查找单元格的格式])
还是一脸懵?打个响指,语法中带中括号的部分都是可选的,所以我再给你简化一下,只保留最常用的两个参数。
.Find (查找值,[匹配方式是完全匹配还是部分匹配])
这样是不是就很简单了?
送佛送到西,不论男女,都抱你上花轿,我再给你举个例子。
以上图所示的数据表为例,查找是否存在字段名"语文"。如果存在,则弹窗显示行号和列标;如果不存在,则显示查无此货。
示例代码如下:
代码看不全可以左右拖动..▼
Sub rngFind() Dim rng As Range '定义一个单元格对象 Set rng = Cells.Find(what:="语文", lookat:=xlWhole) If rng Is Nothing Then MsgBox "查无此货" Else MsgBox "行:" & rng.Row & " 列:" & rng.Column End IfEnd Sub
代码解析▼
第2行代码定义一个变量rng,类型为单元格对象。
第3行代码使用Find方法在当前工作表整个区域中查找字符串"语文",匹配方式为整体匹配(xlWhole),并将查询结果赋值给变量rng。
第4行至第8行代码判断rng是否为Nothing。如果条件成立,则说明查无结果;如果条件不成立,则返回查找结果的行号和列标。