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值的列的顶部单元格的值。 希望这可以满足您的需求。 干杯。