Vba 应用程序匹配

Vba 应用程序匹配,vba,loops,search,match,Vba,Loops,Search,Match,我已经拼凑了一些代码,这有点像狗,但几乎做到了我想要它做的。我在工作表中有一系列参考号,我需要循环浏览,然后搜索其他几张工作表,以找到匹配的参考号、值和处理参考号的部门名称(假设参考号为P列,值为Q列,部门为R列)。然后在包含上述数据的新工作表上创建一个列表。下面的代码几乎完成了我想要它做的事情。它在原始参考编号列表中循环,查找所有匹配项,然后在新工作表上创建一个列表。但是,我不知道如何同时返回值和部门名称。我知道我需要参考应用程序匹配值,而不是下面的原始范围,但不太确定。我希望以上所说的一切都

我已经拼凑了一些代码,这有点像狗,但几乎做到了我想要它做的。我在工作表中有一系列参考号,我需要循环浏览,然后搜索其他几张工作表,以找到匹配的参考号、值和处理参考号的部门名称(假设参考号为P列,值为Q列,部门为R列)。然后在包含上述数据的新工作表上创建一个列表。下面的代码几乎完成了我想要它做的事情。它在原始参考编号列表中循环,查找所有匹配项,然后在新工作表上创建一个列表。但是,我不知道如何同时返回值和部门名称。我知道我需要参考应用程序匹配值,而不是下面的原始范围,但不太确定。我希望以上所说的一切都是有意义的,我们将不胜感激

Sub HighlightMatches()

Application.ScreenUpdating = False
Dim var As Variant, iSheet As Integer, iRow As Long, iRowL As Long, bln     As    Boolean
Dim RS As Worksheet

FR = Cells(Rows.Count, 1).End(xlUp).row
Set RS = Sheets("S1")


iRowL = Sheets(3).Cells(Rows.Count, "A").End(xlUp).row

For iRow = 1 To iRowL

If Not IsEmpty(Cells(iRow, 16)) Then
For iSheet = ActiveSheet.Index + 1 To Worksheets.Count
        bln = False
        var = Application.match(Cells(iRow, 16).Value, Worksheets      (iSheet).Columns(16), 0)

        If Not IsError(var) Then
           bln = True
           Exit For
        End If
     Next iSheet
  End If


  If bln = False Then
     Cells(iRow, 16).Font.Bold = False
     Else
     ' I think the line below needs to be changed to reference the application.match
     Range(Cells(iRow, 16), Cells(iRow, 17)).Copy
     RS.Select
     Range("A200").End(xlUp).Offset(1, 0).PasteSpecial xlValues
     Sheets("FPFCLaims").Select
  End If
  Next iRow
  Application.ScreenUpdating = True

  End Sub

嗨,马特,我很乐意帮忙,那么比赛有什么问题吗?Match的工作原理如下-worksheetfunction.Match(“搜索”,rs.rows(1),0)。这将根据找到搜索项的位置检索数字。嗨,Lowpar,匹配方面工作正常,我需要它返回下两列的偏移量值和匹配值。谢谢您的帮助。您能将它们存储在一个变量中,然后稍后将范围设置为值吗?另外,我发现行ActiveSheet.Range(Cells(iRow,16),Cells(iRow,17)).Copy Destination:=rs.Range(“A200”).End(xlUp)。Offset(1,0)会更好。老实说,我不太确定。本质上我需要的是匹配单元格的偏移值。此行var=Application.match(单元格(iRow,16).Value,工作表(ISHET).Columns(16),0)找到匹配的值,如果您跟随我,我需要返回与工作表(ISHET)的偏移量。您可以使用Application.match(单元格(iRow,16).Value,工作表(ISHET).Columns(16),0来填充该列,这样您就可以转到单元格(iRow,Application.match(单元格(iRow,16).Value,工作表(ISHET).Columns(16),0)+1)以获取列级别上1的偏移量。