在下面的代码中,当我更改Cell B7时,代码会一直运行到clear命令(第7行)。然后它在执行clear命令后停止,如果我再次更改B7,它不会再触发Worksheet_Change。
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
On Error GoTo lastline
If Not Intersect(Target, Target.Worksheet.Range("B7")) Is Nothing Then
Dim i As Integer
Dim j As Integer
Target.Worksheet.Range("A10", "A300").Clear
j = 10
For i = 4 To 10
If ThisWorkbook.Sheets(1).Cells(i, 2) = Target Then
Application.EnableEvents = False
Target.Worksheet.Cells(j, 1) = ThisWorkbook.Sheets(1).Cells(i, 3)
Application.EnableEvents = True
j = j + 1
End If
Next i
End If
Application.EnableEvents = True
lastline:
Application.EnableEvents = True
End Sub
我尝试在第2行之前添加一个MsgBox以查看它是否是循环,但该消息框只运行一次。
编辑:在表单1中列出了项目及其标记。表1中有重复项,例如:Apple 1,Apple 3.代码应该做的是当更改表3中的B7(表3是目标)时,它将找到表1中具有相同名称的所有项作为B7的新值并更新工作表3中的标记。