search多个值 – 循环

我认为这只能在VBA中完成。 我尝试了VLOOKUP,但没有运气。

我想search整个表格中的某些值。 这些值来自另一张表中的一行。 一旦find每个值,它就会查找最上面一行,并拉取该值。

我可能需要遍历行中的每个值并从那里search表单?

我的想法/例子:

Sheet1!A:A 1234 5325 6346 6342 

请在表2中查找1234.让我们说在单元格G5中find它,然后它将查看G1中的值,并将其input到表格2中的单元格A1中。我很抱歉使这个问题变得非常混乱。

这是我开始的:

 Sub FindValues() Dim SearchRow As String Dim SearchRange As Range, cl As Range Dim FirstFound As String Dim sh As Worksheet ' Set Search value SearchRow = Sheets("sheet2").Range("B:B") 

在最后一行得到错误。 运行时错误“13”:types不匹配

你需要设置一个Range对象 。 您不能将其分配给一个string,除非您正在寻找一个像Address属性的string属性 。

 Dim SearchRow As String Dim SearchRange As Range SearchRow = Sheets("sheet2").Range("B:B").address Set SearchRange = Sheets("sheet2").Range("B:B") 

请根据您的要求考虑以下代码:

 Sub FindValues() Dim SearchRow As Range Dim SearchRange As Range Dim Cell As Range Dim FirstFound As Range ' Set Search value Set SearchRow = Sheets("Sheet1").Range("B:B") Set SearchRange = Sheets("Sheet2").Range("A:K") For Each Cell In SearchRow Set FirstFound = SearchRange.Find(Cell.Value2) If Not FirstFound Is Nothing Then Cell.Offset(0, 1).Value2 = SearchRange.Cells(1, FirstFound.Column).Value2 Else Cell.Offset(0, 1).Value2 = "No Value Found" End If Next End Sub 

请注意,根据您的描述,我认为SearchRange不只是1列。

基本上,脚本遍历SearchRow每个Cell ,并在SearchRow查找值。 如果find该值,并返回一个表示具有search值的单元格的子范围,并将每个Cell右侧的值设置为find值的列的顶部单元格的值。 希望这可以满足您的需求。 干杯。