Excel 在另一个工作簿中查找多个匹配的值并从另一列返回值
我试图在VBA中创建一个超级VLOOKUP函数,我已经让它在同一张表中运行良好,但我似乎无法在其他书籍中找到它 基本上,这个函数有三个参数:查找值、查找表和返回列 查找值用于匹配查找表中的每个单元格,当找到匹配项时,它将从匹配单元格行的返回列中的单元格返回值 这是我的密码: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
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 & ", "