可以用vba代码实现例遍excel表中sheet1的A列每个单元格的文本 在B列返回另一表中包含A列单元格文本的单元格所在行数
时间: 2023-03-22 08:00:19 浏览: 152
可以使用以下VBA代码来实现你的要求:
```
Sub FindMatch()
Dim matchSheet As Worksheet
Dim searchSheet As Worksheet
Dim lastRow As Long
Dim searchRange As Range
Dim cell As Range
Dim matchCell As Range
Dim matchRow As Long
Set matchSheet = ThisWorkbook.Sheets("Sheet1")
Set searchSheet = ThisWorkbook.Sheets("Sheet2")
lastRow = matchSheet.Cells(matchSheet.Rows.Count, "A").End(xlUp).Row
Set searchRange = searchSheet.Range("A1:A" & searchSheet.Cells(searchSheet.Rows.Count, "A").End(xlUp).Row)
For Each cell In matchSheet.Range("A1:A" & lastRow)
Set matchCell = searchRange.Find(cell.Value, LookIn:=xlValues, LookAt:=xlWhole)
If Not matchCell Is Nothing Then
matchRow = matchCell.Row
cell.Offset(0, 1).Value = matchRow
End If
Next cell
End Sub
```
代码中,首先定义了两个变量,`matchSheet` 和 `searchSheet`,它们分别代表要搜索的表格和包含要匹配的文本的表格。然后获取 `matchSheet` 表格中 A 列的最后一行,以便遍历 A 列中的所有单元格。接下来,将搜索范围设置为 `searchSheet` 表格的 A 列中所有单元格,并遍历 `matchSheet` 表格中的每个单元格。在每个单元格上,使用 `Find` 方法在搜索范围中查找匹配项。如果找到匹配项,则记录该单元格所在行的行数,并将其写入到该单元格的右侧(即 B 列)。
要使用此代码,请打开 VBA 编辑器,在其中插入一个新模块,将代码复制粘贴到模块中,然后保存并关闭编辑器。返回 Excel,运行此宏即可。请注意,此代码假设 Sheet1 中的数据从 A1 单元格开始,Sheet2 中的数据从 A1 单元格开始。如果您的表格结构不同,请相应地更改代码中的行和列号。
阅读全文