前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA自定义函数:一次查找并获取指定表格中的多个值

VBA自定义函数:一次查找并获取指定表格中的多个值

作者头像
fanjy
发布2024-03-25 13:51:37
860
发布2024-03-25 13:51:37
举报
文章被收录于专栏:完美Excel完美Excel

标签:VBA,自定义函数

这个自定义函数来自于forum.ozgrid.com,可以在指定表中查找多个值,并返回一组结果,而这些结果可以传递给另一个函数。

该函数代码如下:

代码语言:javascript
复制
Public Function MultiVLookup(ReferenceIDs As String, Table As Range, TargetColumn As Integer, Optional Delimeter As String = ",") As Variant()
 Dim IDs
 Dim Length As Long
 Dim i As Long
 
 IDs = Split(ReferenceIDs, Delimeter, -1, vbTextCompare)
 Length = (UBound(IDs) - LBound(IDs) + 1)
 If Length = 0 Then
   MultiVLookup = Null
   Exit Function
 End If
 
 Dim Result() As Variant
 ReDim Result(Length - 1)
 For i = 0 To Length - 1
   Result(i) = Application.WorksheetFunction.VLookup(IDs(i), Table, TargetColumn, False)
 Next
 MultiVLookup = Result
End Function

其中,参数是ReferenceIDs代表要查找的值;参数Table是包含查找内容的表;参数TargetColumn代表表中返回结果的列;参数Delimeter代表分隔符,可选,取决于第一个参数。

例如,下图1所示的数据,表名为MyTable。

图1

要查找MyTable表中A、B、D对应的第2列的值并求和,可使用公式:

=SUM(MultiVLookup("A,B,D",MyTable,2))

或者,将要查找的值放在一个单元格中,然后使用公式来查找相应的值,如下图2所示。

图2

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档