如果另一个单元格的值为" x"则将一系列单元格格式化为已解锁。

时间:2014-04-03 19:29:21

标签: excel vba

我正在创建一个相当大的用户输入模板,我想使用一些VBA代码将某些单元格格式化为“已解锁”。

例如,如果单元格H9 = 5,则将单元格M5:X5格式化为已解锁并使此代码一直向下运行用户输入工作表(将大约2000行,运行每行的代码)。

谢谢 TM

2 个答案:

答案 0 :(得分:0)

对于单行:

Sub UnLockIt()
    If Range("H9").Value = 5 Then
        Range("H5:M5").Locked = False
    End If
End Sub

2000行

Sub UnLockIt()
    If Range("H9").Value = 5 Then
        Range("H5:M2004").Locked = False
    End If
End Sub

修改2004以满足您的需求。这假定已从工作表中删除保护

答案 1 :(得分:0)

我会将其添加到Worksheet Event

  1. 右键单击工作表标签
  2. 查看....代码
  3. 复制并粘贴以下代码
  4. 更改单元格H5:H10将运行M5:X10

    上的代码
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng1 As Range
    Dim rng2 As Range
    Set rng1 = Intersect(Target, Range("H:H"))
    If rng1 Is Nothing Then Exit Sub
    
    With Application
    .ScreenUpdating = False
    .EnableEvents = False
    End With
    
    For Each rng2 In rng1
         Cells(rng2.Row, 13).Resize(1, 12).Locked = False
    Next rng2
    
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
    End Sub