求组 VBA 高手, VBA 编程实现多条件多返回值查找(可有偿)

2020-12-03 20:50:54 +08:00
 ZakaryTime

函数功能:制作一个可以在 WPS 和 Excel VBA 通用自定义函数(自加载宏加载可以直接用函数名作为公式名调用),实现多条件查找返回符合条件的一个或者多个返回值,利用指定的分隔符连接,默认分隔符为;

函数原型:符合条件的数据 mylookup(查找的单元格,查找条件 1条件 2.....*条件 n,返回的区域,指定的连接符(可以不指定使用默认;))

1484 次点击
所在节点    问与答
6 条回复
zhyt0520
2020-12-03 22:08:51 +08:00
greatbody
2020-12-03 23:44:17 +08:00
老 VB6 用户路过
Tumblr
2020-12-04 00:32:02 +08:00
多条件查找,一般来说直接 vlookup 或 xlookup 就可以了,用不到 vba 。
ZakaryTime
2020-12-04 22:17:06 +08:00
@zhyt0520 谢谢,解决了。
ZakaryTime
2020-12-04 22:17:22 +08:00
@Tumblr 匹配值不是唯一的时候很麻烦。
ZakaryTime
2020-12-04 22:18:33 +08:00
已经解决了,代码共享出来给以后有用的人

Function myLookUp(arr, RngData As Range, Optional splitFlag$ = ";")
Dim arrData
Dim r&, i&
Dim xrr(), x&
If Not IsArray(arr) Then
myLookUp = CVErr(xlErrValue)
Else
arrData = RngData.Resize(UBound(arr), 1)
For r = 1 To UBound(arr)
If arr(r, 1) Then
x = x + 1
ReDim Preserve xrr(1 To x)
xrr(x) = arrData(r, 1)
End If
Next
If x > 0 Then
myLookUp = Join(xrr, splitFlag)
Else
myLookUp = CVErr(xlErrValue)
End If
End If
End Function


完整的说明:
[VBA Excel 多条件 多返回值]( https://www.yuque.com/zakary/qrnvpn/frpg6s)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/731896

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX