当特定单元格中有数据时,如何锁定大部分行?

时间:2019-01-14 10:56:04

标签: excel vba

我有一个电子表格,其中提供了怪异的零件编号。当我意识到有人可能不小心更改了先前的条目并破坏了整个过程时,它基本上就完成了!数据库在我眼中,但是现在Excel必须做。

当日期L列中有某行时,我想从A-K列锁定X行。我目前正在使用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 :(得分:0)

我是个白痴。我通过简单的数据验证If(Next Cell = "",Named-List,FALSE)解决了这一问题,该方法可以在创建零件后禁用下拉调整。