在另一个工作簿中查找与另一列匹配并返回值的多个值

时间:2015-04-10 17:38:18

标签: excel vba lookup

我正在尝试在VBA中创建一个超级VLOOKUP功能,并且我已经让它在同一张表中正常工作,但我似乎无法弄清楚是否可以将其用于其他书籍。

这个函数基本上有三个参数:Lookup Value,Lookup Table和Return Column。

查找值用于匹配查找表中的每个单元格,当找到匹配项时,它将从匹配单元格行的返回列中的单元格返回值。

这是我的代码:

Function SUPERLOOKUP(lv As Range, lt As Range, rc As Range)
Dim cell As Range
Dim output As String

For Each cell In lt
    If cell.Value = lv Then
        output = output & Range(ColumnLetter(uRC.Column) & cell.Row).Value & ", "
    End If
Next cell

SUPERLOOKUP = Left(output, Len(output) - 2)
End Function

ColumnLetter是我用来将列号转换为字母值的函数。

任何帮助都表示赞赏,甚至指向正确的方向。

1 个答案:

答案 0 :(得分:0)

在这一行:

output = output & Range(ColumnLetter(uRC.Column) & cell.Row).Value & ", "

Range会引用ActiveSheet,因此您需要使用工作表参考进行限定。

例如(切换到Cells以避免必须将列号转换为字母):

output = output & lt.Parent.Cells(cell.row, uRC.Column).Value & ", "

output = output & cell.EntireRow.Cells(uRC.Column).Value & ", "