У меня есть таблица с номерами деталей для странных и замечательных. Это в основном завершено, когда я понял, что кто-то может случайно изменить предыдущие записи и сломать все это! База данных в моих взглядах, но пока Excel должен делать.
Я хочу заблокировать строку X из столбцов A-K, когда в столбце L указана дата. В настоящее время я использую Application.Intersect Target
, чтобы никто не пытался оставить пустые строки или неполные описания, но, похоже, не может получить дополнительное блокирование.
Current Sub выглядит так:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count <> 1 Then Exit Sub
Dim isect As Range
On Error Resume Next
Set isect = Application.Intersect(Target, Range("E3:E9999"))
If Not (isect Is Nothing) Then
If Target.Column = 1 Then
If Len(Target.Value) > 0 And Len(Target.Offset(-1, 2).Value) = 0 Then
' Check if a row is skipped on Initials
MsgBox "You cannot skip a row", vbInformation
Target.ClearContents
End If
Else
If (Len(Target.Value) > 0 And Len(Target.Offset(-1, 0).Value) = 0) Or (Len(Target.Value) > 0 And Len(Target.Offset(-1, 2).Value) = 0) Then
' Check if previous part description is blank
MsgBox "You cannot skip a row, or leave an incomplete part", vbInformation
Target.ClearContents
End If
End If
End If
End Sub