Как я могу заблокировать большую часть строки, когда в конкретной ячейке есть данные? - PullRequest
0 голосов
/ 14 января 2019

У меня есть таблица с номерами деталей для странных и замечательных. Это в основном завершено, когда я понял, что кто-то может случайно изменить предыдущие записи и сломать все это! База данных в моих взглядах, но пока 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

1 Ответ

0 голосов
/ 14 января 2019

Я идиот. Я решил это с помощью простой проверки данных If(Next Cell = "",Named-List,FALSE), чтобы отключить настройку раскрывающегося списка после создания детали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...