Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 在另一个工作簿中查找多个匹配的值并从另一列返回值_Excel_Vba_Lookup - Fatal编程技术网

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

Excel 在另一个工作簿中查找多个匹配的值并从另一列返回值,excel,vba,lookup,Excel,Vba,Lookup,我试图在VBA中创建一个超级VLOOKUP函数,我已经让它在同一张表中运行良好,但我似乎无法在其他书籍中找到它 基本上,这个函数有三个参数:查找值、查找表和返回列 查找值用于匹配查找表中的每个单元格,当找到匹配项时,它将从匹配单元格行的返回列中的单元格返回值 这是我的密码: Function SUPERLOOKUP(lv As Range, lt As Range, rc As Range) Dim cell As Range Dim output As String For Each cel

我试图在VBA中创建一个超级VLOOKUP函数,我已经让它在同一张表中运行良好,但我似乎无法在其他书籍中找到它

基本上,这个函数有三个参数:查找值、查找表和返回列

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

这是我的密码:

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是一个函数,用于将列号转换为其字母值

感谢您的帮助,甚至请您指出正确的方向。

在这行:

output = output & Range(ColumnLetter(uRC.Column) & cell.Row).Value & ", "
Range
将引用
ActiveSheet
,因此您需要使用工作表引用对其进行限定

例如(切换到
单元格
,以避免将列号转换为字母):


用户返回列,这就是它以前的名称(我想在代码中应该是rc)。谢谢Tim,回答得很好。
output = output & lt.Parent.Cells(cell.row, uRC.Column).Value & ", "
output = output & cell.EntireRow.Cells(uRC.Column).Value & ", "