在要查找的工作表中,使用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
在这个例子中,matchRow
和matchColumn
变量将包含匹配数据所在的行和列。
最后,记得关闭工作簿。可以使用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