После анализа вашего кода это классическая проблема с On Error Resume Next
в сочетании с Application.EnableEvents = False
.Даже если в коде есть ошибка, задание все еще выполняется.Вот почему последняя ячейка удаляется, например, после вставки.
Чтобы избежать этого, я просто удаляю сообщение об ошибке, следующее и enableevents, и добавляю эту строку перед первым оператором If:
If Target.Column = 1 Then Exit Sub
Пожалуйста, попробуйте это:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then Exit Sub
If Target.Column = 7 And Target.Value = "YES" Then
'Define last row on completed worksheet to know where to place the row of data
LrowCompleted = Sheets("EQUIP. OFF RENT").Cells(Rows.Count, "A").End(xlUp).Row
'Copy and paste data
Range(Target.Row & ":" & Target.Row).Copy Sheets("EQUIP. OFF RENT").Range("A" & LrowCompleted + 1)
End If
If Target.Column = 7 And Target.Value = "YES" Then
Range(Target.Row & ":" & Target.Row).Delete
End If
End Sub