我目前使用查找函数返回多个值。我从Extend Office获得了这个功能。 https://www.extendoffice.com/documents/excel/2706-excel-vlookup-return-multiple-values-in-one-cell.html使用查找函数返回过滤值列表
我想编辑代码以迎合我的需求它可以进一步将多个值过滤为我所需要的值。我目前正在使用Instr函数返回仅以用户键入的字母开始的值。但是,该函数无法正常工作,因为结果会显示“#VALUE!”。我不知道我出错的地方。例如,我在工作表本身的函数中使用了'MYVLOOKUP(C2,Table!A:B,2,“J”)''键。这意味着我只想返回以'J'开头的值,但它返回#VALUE !.
Function MYVLOOKUP(pValue As String, pWorkRng As Range, pIndex As Long,
filter As String)
Dim rng As Range
Dim xResult As String
Dim result As Integer
xResult = vbNullString
'the next line trims pWorkRng down to the .UsedRange
Set pWorkRng = Intersect(pWorkRng, pWorkRng.Parent.UsedRange)
For Each rng In pWorkRng
If rng = pValue Then
result = InStr(rng.Value, filter, vbTextCompare)
If result = 1 Then
xResult = xResult & rng.Offset(0, pIndex - 1) & ","
Else
End If
End If
Next
MYVLOOKUP = Trim(xResult)
End Function
请详细说明* “无法工作” *,并显示一个例子用例。 –
你首先检查'If rng = pValue',然后如果它以'filter'开头,这个双重检查就没有意义。要么搜索完全匹配,要么搜索以某物开头的内容。 –
我不能返回多个值,它将值的范围缩小到只让'J'开始? –