在編寫代碼時,常需要依據指定內容在指定區域查找符合條件的單元格,這時就需要用
查找的方法。在工作表中,可以執行【編輯】/【查找】命令查找指定的單元格,同樣也可以利用在公式中使用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
-
執行結果如下圖所示
-