在编写代码时,常需要依据指定内容在指定区域查找符合条件的单元格,这时就需要用
查找的方法。在工作表中,可以执行【编辑】/【查找】命令查找指定的单元格,同样也可以利用在公式中使用Match 等函数对单元格进行查找。
一、Find查找
-
单元格范围.Fing. (查找内容,查找开始位置,搜‘索范围,单元格区配γ 搜索方式,搜索类别,区分大小写,区分全/半角)
-
具体解释
<1> 查找内容:
是查找的依据。和【查找} 对话框的“查找内容”文本框相对应。
<2>查找开始位置:
查找开始位置。默认为活动单元格,如果未指定,则从指定区域左上角开始查找。
<3> 搜索范围:
是查找公式、值还是备注,等同于{ 查找】对话框中的“搜索范围” 。可为xlFormulas (公式)、xlValues (值)、xlComments (备注)和 xlFindlookln 常量之一。
<4> 单元格匹配:
是指查找单元格的部分内容还是全部内容。和【查找】对话框的“单元格匹配” 选项功能一致。可为xlPart (部分内容)、xlWhole (内容匹配)和XlLookAt 常量之一。
<5> 搜索方式:
是按行还是列搜索。和【查找】 对话框中“搜索方式”功能一致。
可为xlByColumns (按列)或xlByRows (按行) XlSearchOrder 常量之一。
<6>区分大小写:
查找时是否区分大小写。和{ 查找} 对话框中的“ 区分大小写”选项相对应。若指定为True , 区分大小写查找。默认值为False o
<7> 区分全半角:
和{ 查找} 对话框的“ 区分全/半角”选项功能相一致。
<8>搜索类别:
可为xlNext 或xlPrevious XlSearchDirection 常量之一。
XlPrevious 是查找前一个单元格。默认常量为xlNext ,这时和【查找} 对话
框的查找下一个功能一致。
-
Sub 查找单价()
Dim intRow
intRow = Range("a:a").Find(Range("g1")).Row
Range("g2") = Range("B" & intRow)
End Sub
-
执行结果如下图所示:
END
二、使用工作表函数进行查找
-
除了使用Find 方法进行查找外,还可以使用工作表函数实现单元格查找。如查找位置可以使用Macth 函数: 查找并返回内容可以使用Vlookup 函数。本节中涉及到的Macth 函数和Vlookup 函数语法请参考Excel 帮助文件。本节只介绍如何在Excel VBA 中调用该函数。
-
使用match函数返回查找单元格的位置
Sub 查找单价()
Dim intRow
intRow = Application.Match(Range("a1"), Range("a:a"), 0)
Range("g2") = Range("B" & intRow)
End Sub
-
执行结果如下图所示:
-
vlookup 函数查找单价
Sub 查找单价()
Range("g2") = Application.VLookup(Range("a2"), Range("a:d"), 2, 0)
End Sub
-
执行结果如下图所示
-