首页 > 其他分享 >自定义类似VlookUp函数的包含性匹配

自定义类似VlookUp函数的包含性匹配

时间:2022-12-01 10:46:03浏览次数:50  
标签:匹配 自定义 VlookUp Rng SourceRange Range 查找

使用场景介绍:

基础数据表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 

标签:匹配,自定义,VlookUp,Rng,SourceRange,Range,查找
From: https://www.cnblogs.com/bohua320/p/16940677.html

相关文章