excel - MYVLOOKUP 用于查找部分匹配的多个值并将它们拟合到一个单元格中
问题描述
我目前正在尝试使用以下 VBA 代码从多个单元格中查找信息并将其提取到一个单元格中。它非常适合精确匹配,但我希望它也能找到部分匹配。我知道我必须将 As 变体添加到语法中,但不确定如何执行它。
任何进一步的帮助将不胜感激。
Function MYVLOOKUP(pValue As String, pWorkRng As Range, pIndex As Long)
'Update 20150310
Dim rng As Range
Dim xResult As String
xResult = ""
For Each rng In pWorkRng
If rng = pValue Then
xResult = xResult & Chr(13) & Chr(10) & rng.Offset(0, pIndex - 1)
End If
Next
MYVLOOKUP = xResult
End Function
我希望所有部分匹配的输出都列在单个单元格中的另一个之上。
解决方案
您必须使用Like
而不是=
Function MYVLOOKUP(pValue As String, pWorkRng As Range, pIndex As Long)
'Update 20150310
Dim rng As Range
Dim xResult As String
xResult = ""
For Each rng In pWorkRng
If rng Like "*" & pValue & "*" Then 'using Like and "*" "*" means anything containing pValue
xResult = xResult & Chr(13) & Chr(10) & rng.Offset(0, pIndex - 1)
End If
Next
MYVLOOKUP = xResult
End Function
你必须注意这一点:
Like
是Case Sensitive
"*" & Variable
查找任何以您的变量结尾的字符串Variable & "*"
查找任何以您的变量开头的字符串
推荐阅读
- c++ - 嵌套for循环不循环通过第二个数组
- flutter - 颤振究竟是如何渲染小部件的?
- python - 将 25 gigs 文本文件加载到 Mysql(python 脚本或 LOAD DATA)的最佳方法?
- c - VSCode 'Go to definition' 不仅仅适用于大型项目
- c# - 在静态类中配置静态 StreamWriter
- flutter - 如何在 Flutter 中制作弧形底部 appBar?
- html - 仅使用 `direction: rtl` 样式化元素
- javascript - 可以对字符串数组进行编码吗?
- javascript - 如何从 gulp src 流中排除所有 node_modules 目录?
- r - 从具有未知数量参数的模型动态构建表达式以获得相当的标签