Excel 如果另一个单元格的值为“0”,则将单元格范围格式化为未锁定;x";
我正在创建一个相当大的用户输入模板,我想使用一些VBA代码将某些单元格格式化为“未锁定” 例如,如果单元格H9=5,则将单元格M5:X5格式化为unlocked,并让此代码一直运行到用户输入工作表(大约有2000行,每行运行代码) 多谢各位 TM对于单行:Excel 如果另一个单元格的值为“0”,则将单元格范围格式化为未锁定;x";,excel,vba,Excel,Vba,我正在创建一个相当大的用户输入模板,我想使用一些VBA代码将某些单元格格式化为“未锁定” 例如,如果单元格H9=5,则将单元格M5:X5格式化为unlocked,并让此代码一直运行到用户输入工作表(大约有2000行,每行运行代码) 多谢各位 TM对于单行: Sub UnLockIt() If Range("H9").Value = 5 Then Range("H5:M5").Locked = False End If End Sub 2000行 Sub UnLo
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以满足您的需要。这假定已从工作表中删除了保护。我会将其添加到
工作表事件中
右键单击工作表选项卡
查看。。。。代码
复制并粘贴下面的代码
更改单元格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
谢谢Gary的学生现在,我需要一行一行地申请这个表格。那么有什么可以做到这一点:如果H9=5,那么解锁J9:X9。然后向下移动到下一行,如果H10=5,解锁J10:X10。然后向下移动到下一行并重复,等等,通过第2000行我可以让VBA解锁范围内的第一行,但我无法将代码移动到下一行并重复。例如:如果H9=5,则解锁J9:X9。然后向下移动到下一行,如果H10=5,解锁J10:X10。然后向下移动到下一行,并在第2000行重复上述操作