VBA, 工作表里在第二列里每输入一个单元格后, 如果发现第二列该单元格上面已经有相同值的单元格时, 提示最靠近的单元格所在行数,从下往上的方向
时间: 2023-09-11 19:10:55 浏览: 87
自动累积单元格输入内容到另一单元格内
你好,感谢提问。我了解你的问题,以下是 VBA 代码实现:
```
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngCheck As Range
Dim rng As Range
Dim sFirst As String
Dim sFind As String
Dim iLast As Integer
Set rngCheck = Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row)
If Not Intersect(Target, rngCheck) Is Nothing Then
Application.EnableEvents = False
sFirst = Target.Value
Set rng = Range("B1:B" & Target.Row - 1)
Set rng = rng.Cells.SpecialCells(xlCellTypeConstants, xlTextValues)
If rng.Count > 0 Then
sFind = sFirst
Set rng = rng.Find(sFind, lookat:=xlWhole, After:=Cells(Target.Row, "B"), _
searchdirection:=xlPrevious)
If Not rng Is Nothing Then
iLast = rng.Row
MsgBox "最靠近的单元格所在行数:" & iLast, vbInformation, "提示"
End If
End If
Application.EnableEvents = True
End If
End Sub
```
这段代码需要放在工作表对象中,而不是常规的模块中。在 VBA 窗口中,双击要操作的工作表,在弹出的代码窗口中选择 “工作表” 和 “改变” 两个下拉选项,然后将以上代码粘贴到代码窗口中。
当你在第二列输入单元格时,该代码会自动检查该单元格上面是否有相同值的单元格,并在最靠近的单元格所在行数从下往上的方向提示你。希望这能帮到你!
阅读全文