在要查找的工作表中,使用VBA中的 Range.Find 方法查找匹配的数据。例如,如果要在B列中查找与要搜索的范围匹配的数据,则可以使用以下代码:

Set matchRange = Worksheets("Sheet2").Range("B:B").Find(what:=searchRange.Value, lookat:=xlWhole)

在这个例子中,what参数设置为要搜索的范围的值,lookat参数设置为xlWhole,表示要匹配整个单元格的内容。

如果找到匹配的数据,则可以使用VBA中的Range.Offset方法获取匹配数据所在的行或列,例如:

matchRow = matchRange.Row
matchColumn = matchRange.Column

在这个例子中,matchRowmatchColumn变量将包含匹配数据所在的行和列。

最后,记得关闭工作簿。可以使用VBA中的Workbook.Close方法关闭工作簿。

以下是一个完整的示例代码,用于在VBA中跨工作簿查找匹配数据:

Sub SearchMatchingData()
    Dim searchRange As Range
    Dim matchRange As Range
    Dim matchRow As Long
    Dim matchColumn As Long
    '打开要搜索的工作簿
    Dim searchWorkbook As Workbook
    Set searchWorkbook = Workbooks.Open("C:\Users\User\Documents\SearchWorkbook.xlsx")
    '打开要查找的工作簿
    Dim targetWorkbook As Workbook
    Set targetWorkbook = Workbooks.Open("C:\Users\User\Documents\TargetWorkbook.xlsx")
    '选择要搜索的工作表和要查找的工作表
    Dim searchSheet As Worksheet
    Set searchSheet = searchWorkbook.Worksheets("Sheet1")
    Dim targetSheet As Worksheet
    Set targetSheet = targetWorkbook.Worksheets("Sheet2")
    '访问要搜索的范围
    Set searchRange = searchSheet.Range("A1:A10")
    '在要查找的工作表中查找匹配的数据
    Set matchRange = targetSheet.Range("B:B").Find(what:=searchRange.Value, lookat:=xlWhole)
    '获取匹配数据所在的行和列
    matchRow = matchRange.Row
    matchColumn = matchRange.Column
    '关闭工作簿