
-
积分:0
-
财富值:2.0
-
身份:普通用户
mlookup公式以有人升级为比xlookup更为强大的wlookup
现将vba代码上传到网站上真心希望更新if函数与lookup函数sum函数因为有很多大神都将功能加入到低版本的office上所以更多的低版本office又有了新的生命,在此也感谢格子社区现将代码呈上
Function Wlookup(V, vY, vh, Optional m)
Dim arr, arr1, arr2()
Dim k As Integer
arr = vY
arr1 = vh
If UBound(arr1) = 1 Then
arr1 = Application.Transpose(arr1)
arr = Application.Transpose(arr)
End If
ReDim arr2(1 To 1)
For x = 1 To UBound(arr1)
If arr(x, 1) = V Then
Wlookup = arr1(x, 1)
If IsMissing(m) Then
Exit Function
Else
k = k + 1
ReDim Preserve arr2(1 To k)
arr2(k) = arr1(x, 1)
End If
End If
Next x
If m = 0 Then
Wlookup = arr2(k)
ElseIf m = -1 Then
Wlookup = Join(arr2, ",")
ElseIf m = -2 Then
Wlookup = JS(V, vY, vh)
Else
Wlookup = arr2(m)
End If
End Function
Function JS(J1, R1, R2) '取接近值
Dim Jarr1, Jarr2
Dim x
Jarr1 = R1
Jarr2 = R2
For x = 1 To UBound(Jarr1)
If x + 1 > UBound(Jarr1) Then
JS = Jarr2(x, 1)
Exit Function
ElseIf J1 >= Jarr1(x, 1) And J1 < Jarr1(x + 1, 1) Then
JS = Jarr2(x, 1)
Exit Function
End If
Next x
End Function
说实话本人学渣复制的代码请各大神指正一下,希望可以更新一下mlookup这个老函数