Sub Macro1()当D1列显百示为“正确" />
乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > vba 锁定与解锁单元格-excel 单元格锁定 宏,excel合并单元格宏

vba 锁定与解锁单元格-excel 单元格锁定 宏,excel合并单元格宏

作者:乔山办公网日期:

返回目录:excel表格制作


打开该文件,先解除默认的“宏禁用”状态,再次点击“宏”→“录制宏”。



Sub Macro1()
'当D1列显示为“正确”时,用VBA锁定A1、B1、C1列的数据
'下面空白处a2\b2\c2\d2可以自由录入数据

Dim ir As Integer
Dim c As Range

ActiveSheet.Unprotect
ir = [a65536].End(xlUp).Row
Cells.Locked = False
For Each c In Range("d1:d" & ir)
If c.Value = "正确" Then Range("A" & c.Row & ":C" & c.Row).Locked = True
Next
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
sheets("Sheet1").Unprotect("密码") '对表格 Sheet1 输入密码取消保护
sheets("Sheet1").Protect ("密码") '对表格 Sheet1输入密码 加密

保护工作表后,锁定才起作用。所以应解除第一列的锁定,再保护工作表。
然后Alt+F11,将下面代码粘贴到某个工作表处。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
ActiveSheet.Unprotect
Range("A:A").Select
If Cells(Target.Row, Target.Column) = "" Then
Selection.Locked = False
Else
Selection.Locked = True
Cells(Target.Row, Target.Column).Locked = False
End If
Cells(Target.Row, Target.Column).Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
End Sub
程序修改的是A列

相关阅读

关键词不能为空
极力推荐
  • <em>excel</em>如何做回归<em>方程</em>-excel

  • 首先要准备好两组数百据做为x和y,这组数据在可以简单感觉一下是否具有线性关系将准备好的数据放入excel表格里面EXCEL需要我们自己启用数据分析,点击文件,选择选项,点击左侧的

ppt怎么做_excel表格制作_office365_word文档_365办公网