查找或查找具有多个值和多个返回值

时间:2014-09-01 09:26:52

标签: excel-vba vba excel

vba初学者。

我有2个工作表,在工作表1(sht1)中,我有2列索引号(列A和列U) 我需要做的是比较sht1列U中的索引号列表与工作表2(sht2)中的列B,并从那里检索sht2列I&的同一行中的相应数据。 M并将2个值连接在一起以输入到sht1列V

但是,如果找不到sht1.column U中的值,我想使用来自同一行的sht1.Column A中的索引号进行类似的搜索。

我对如何解决这个问题感到非常难过。我再次尝试在不应用activecell.select的情况下执行上述操作,但由于工作表1和工作表2中的行数不同而导致卡住,因此我无法使用{{ 1}}。

1 个答案:

答案 0 :(得分:0)

作为公式:

=INDEX('Sht2'!I:I,IFERROR(MATCH(U2,'Sht2'!B:B,0),MATCH(A2,'Sht2'!B:B,0))) & INDEX('Sht2'!M:M,IFERROR(MATCH(U2,'Sht2'!B:B,0),MATCH(A2,'Sht2'!B:B,0)))

作为一项功能,

  • 遍历sht1
  • 中的行
  • 使用您的Application.WorksheetFunction.Match索引值{/ 1}代替MATCH来调用U
  • 如果是错误,请使用A索引值重复
    • 要检查错误,请使用以下内容: foundRowNum=0
      On Error Resume Next
      foundRowNum=Application.WorksheetFunction.Match("lookdccfup",ActiveWorkbook.Sheets("Sht2").Range("B:B"),0)
      On Error Goto 0 If foundRowNum = 0 Then ...
  • 使用生成的行索引来引用sht2.Cells(xxx,9) & sht2.Cells(xxx,11)
相关问题