【发布时间】:2016-10-06 23:50:57
【问题描述】:
我在工作簿的 Sheet1 中列出了一些员工编号。工作簿中还有一些其他工作表(我们将这些工作表称为 A、B、C、D 等),其中包含员工编号和一些信息(可能是工作日期)。如果在工作表 A 中找到员工编号,则它不会出现在任何其他工作表中,但它可能会在工作表 A 中出现多次。
我编写了一些 VBA,它将在所有其他工作表中查找 Sheet1 中列出的员工编号,并返回找到该员工编号的单元格位置。员工编号列在 A 列中,从 A2 开始,它列出了在员工编号右侧找到编号的位置。 How Sheet1 looks Sheet "A"
现在,当我运行我的 VBA 宏时,它会列出找到该员工编号的所有单元格位置,但我想要它只给我该员工编号的第一个实例的单元格位置.然后,转到 Sheet1 的 A 列中列出的下一个员工编号。这是我目前拥有的 VBA。
Sub makeMySearch()
Dim ws As Worksheet, lastrow As Long
For Each cell In Sheets("Sheet1").Range("A2:A" & Sheets("Sheet1").Range("A1").End(xlDown).Row)
recFound = 0
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Sheet1" Then
lastrow = Sheets(ws.Name).Range("A1").End(xlDown).Row
For Each cell2 In Sheets(ws.Name).Range("A1:A" & lastrow)
If InStr(cell2.Value, cell.Value) <> 0 Then
recFound = recFound + 1
cell.Offset(0, recFound) = Split(cell2.Address, "$")(1) & Split(cell2.Address, "$")(2)
End If
Next cell2
End If
Next ws
Next cell
MsgBox "Done Finding!"
End Sub
【问题讨论】: