VBA, 工作表里在第二列里每输入一个单元格后, 如果发现第二列该单元格上面已经有相同值的单元格时, 提示找到的离该单元格最近的相同单元格所在行数
时间: 2024-03-03 10:48:59 浏览: 126
VBA自定义函数(查找当前行之前同项目的其他列).xls
您好!针对您的问题,可以使用 VBA 代码来实现。下面是代码示例:
```VB
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range
Dim lastRow As Long, i As Long
Dim findValue As String, findRange As Range
'只针对第二列的单元格改动进行处理
If Target.Column <> 2 Then Exit Sub
'遍历第二列的所有单元格
For Each cell In Range("B2:B" & Rows.Count).Cells
'如果该单元格不为空
If Not IsEmpty(cell) Then
findValue = cell.Value
Set findRange = Range("B1:B" & cell.Row - 1)
'在该单元格上面寻找相同值的单元格
Set findRange = findRange.Find(What:=findValue, LookAt:=xlWhole, MatchCase:=False)
'如果找到了相同值的单元格
If Not findRange Is Nothing Then
'提示找到的离该单元格最近的相同单元格所在行数
MsgBox "发现第 " & findRange.Row & " 行的单元格与当前单元格内容相同"
End If
End If
Next cell
End Sub
```
将以上代码复制到您的工作表的代码模块中,即可实现每次输入第二列的单元格后,如果发现该单元格上面已经有相同值的单元格,就会提示找到的离该单元格最近的相同单元格所在行数。
阅读全文