EXCEL自定义函数 VLOOKUP的变体(从最右边找值,找到之后返回左边的值)

Function vLookDown(iValue As Range, iRngs As Range, iIndex As Byte)

'iValue 要查找的值
'iRngs 查找值的区域,在区域的最后一列查找iValue
'iIndex找到之后返回区域的第iIndex列,iIndex取值范围为0~255
Dim iVal As String  
'为要查找的值声明变量,声明其类型为字符串
iVal = iValue.Value 
'要查找的值
Set iValue = Nothing 
'释放内存
    If Len(iVal) > 0 Then 
    '如果不为空值则查找
        Dim iRngArr() 
        '声明数组
        iRngArr = iRngs 
        '区域赋值给数组
        iRngsCount = iRngs.Count 
        '区域的总单元格数
        Set iRngs = Nothing 
        '释放内存
        For i = 1 To UBound(iRngArr) 
        '1到最后一行,UBound(iRngArr)为选中区域的行数
            findValue = iRngArr(i, iRngsCount / UBound(iRngArr)) 
            '当前对比的值iRngsCount(总单元格数)/UBound(iRngArr)(总行数) = 总列数
            If iVal = findValue Then
                vLookDown = iRngArr(i, iIndex) 
                '如果找到了则返回该值左边区域的第Iindex列
                Exit For 
                '退出for循环
            End If
            vLookDown = CVErr(xlErrNA) 
            '如果没找到则返回 #N/A
        Next i
    Else
        vLookDown = CVErr(xlErrNA) 
        '如果为空值则返回 #N/A
    End If
End Function

检验结果:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值