根据另一个单元格的值更新单元格保护

时间:2020-07-06 16:28:20

标签: excel vba loops

我正在尝试在实验室中跟踪数据。

目标。当单元格P3中的值更改为“是”时,单元格Q3:AE3被锁定。但是,如果单元格P3中没有出现“是”,则单元格Q3:AE3将被解锁。

我需要相对于每个P值所在的行遍历P列的锁定/解锁单元。
例如,如果P36 =“是”,则Q36:AE36将被锁定。

编辑:此代码与P3行一起使用。如何通过P3:P500进行此循环?

Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("P3") = "Yes" Then
        Range("Q3:AE3").Locked = True
    ElseIf Range("P3") = "No" Then
        Range("Q3:AE3").Locked = False
    ElseIf Range("P3") = "" Then
        Range("Q3:AE3").Locked = False
    End If
End Sub

1 个答案:

答案 0 :(得分:0)

这将处理在P列中更改的任何数量的值。根据需要提供密码。

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    'did any cells in column P change
    If Not Intersect(Target, Me.Range("P1").EntireColumn) Is Nothing Then
    
        Me.Unprotect "password"
        
        Dim cell As Range
        For Each cell In Intersect(Target, Me.Range("P1").EntireColumn)
        
            Me.Range("Q" & cell.Row & ":AE" & cell.Row).Locked = UCase$(cell.Value) = "YES"
            
        Next
        
        Me.Protect "password"
    
    End If
    
End Sub