自定義類似VlookUp函式的包含性匹配
阿新 • • 發佈:2022-12-01
使用場景介紹:
基礎資料表Sheet1:
代查詢匹配的表Sheet2:
【說明】代查詢工作表中的規格,只是基礎工作表中規格的一部分,是完全被包含的關係,只要是完全被包含,就匹配其代號,填寫入代號一列
建立了自定義函式MyLookUp
Sheet2表中B2單元格寫入以入自定義的函式公式:
=MyLookUp(A2,Sheet1!A:B,2),即得到想要的結果,如圖:
自定義函式MyLookUP的程式碼如下:
Public Function MyLookUP(FindValue As Range, SourceRange As Range, Col As Integer) As Variant Dim Rng As Range, returnRng As Range '以下是對查詢區域進行了一個範圍的壓縮,精細到只在有效資料區域進行查詢匹配。 '因為有很多使用者會習慣選取整個列來作為資料區域(包括工作表UsedRange之外的區域),這會造成無意義的迴圈遍歷 Set SourceRange = Application.Intersect(SourceRange.Parent.UsedRange, SourceRange) For Each Rng In SourceRange.Columns(1).Cells If InStr(1, Rng.Value, FindValue.Value, vbTextCompare) > 0 Then Set returnRng = Rng.Offset(0, Col - 1) Exit For End If Next MyLookUP = returnRng.Value End Functiont