Excel VBA宏-Pt2

Excel VBA宏-Pt2,excel,vba,conditional-formatting,Excel,Vba,Conditional Formatting,试图限制用户从具有数据验证列表的3列中选择任何内容 目标范围:(三列L:N),即L3、M3、N3至L40、M40、N40 除非用户首先填充U列中的字段 目标范围:U3-U40 我尝试搜索如何锁定单元格选择,除非在过去几天内选择了相应的单元格,但没有结果。我想问题是因为目标单元格实际上没有输入值,而是使用条件格式的列表 编辑:不确定我是否清楚说明了这一点,但每一行都应该独立于其他行工作,即,如果不填充U3,则希望锁定L3、M3和N3,如果不填充U4,则锁定L4、M4和N4。。等 谢谢! Andre

试图限制用户从具有数据验证列表的3列中选择任何内容

目标范围:(三列L:N),即L3、M3、N3至L40、M40、N40

除非用户首先填充U列中的字段

目标范围:U3-U40

我尝试搜索如何锁定单元格选择,除非在过去几天内选择了相应的单元格,但没有结果。我想问题是因为目标单元格实际上没有输入值,而是使用条件格式的列表

编辑:不确定我是否清楚说明了这一点,但每一行都应该独立于其他行工作,即,如果不填充U3,则希望锁定L3、M3和N3,如果不填充U4,则锁定L4、M4和N4。。等

谢谢!
Andrew。

在要保护的工作表的代码模块中,请输入以下内容

Private Sub Worksheet_Activate()
    Shield
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    Shield
    If Len(Me.[u5]) Then Me.Unprotect '<-- change 'u5' to the cell in column U that unlocks
End Sub

Sub Shield()
    With Me
        .Unprotect
        .Cells.Locked = False
        .[L3:n40].Locked = True
        .Protect , 0, 1, 1, 1, 1, 1, 1, 1, 1, 1
    End With
End Sub

在要保护的工作表的代码模块中,请输入以下内容

Private Sub Worksheet_Activate()
    Shield
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    Shield
    If Len(Me.[u5]) Then Me.Unprotect '<-- change 'u5' to the cell in column U that unlocks
End Sub

Sub Shield()
    With Me
        .Unprotect
        .Cells.Locked = False
        .[L3:n40].Locked = True
        .Protect , 0, 1, 1, 1, 1, 1, 1, 1, 1, 1
    End With
End Sub

安迪,如果这对你有效,请接受答案。我注意到你在第一个问题上没有这样做。嗨-这仍然不起作用。。。注意:不确定我是否没有明确说明这一点,但每条线都应该独立工作,即,除非U3已填充,否则要锁定L3、M3和N3,除非U4已填充,否则L4、M4和N4也是如此。。etcAndy,如果这对你有效,请接受答案。我注意到你在第一个问题上没有这样做。嗨-这仍然不起作用。。。注意:不确定我是否没有明确说明这一点,但每条线都应该独立工作,即,除非U3已填充,否则要锁定L3、M3和N3,除非U4已填充,否则L4、M4和N4也是如此。。等