Excel单元格输入数据锁定问题! 80

这代码是输入数据后自动锁定单元格,不可修改数据!但是遇到合并单元格就失效了求大神改改!... 这代码是输入数据后自动锁定单元格,不可修改数据!但是遇到合并单元格就失效了求大神改改! 展开
 我来答
姓王的wy451

2019-10-22 · TA获得超过48.3万个赞
知道大有可为答主
回答量:8万
采纳率:78%
帮助的人:8945万
展开全部

这代码并不是输入数据后自动锁定单元格,而是选中单元格就自动锁定。除了不能处理合并单元格外,代码还有二个问题。一是保护工作表的密码和取消工作表的密码不相同,二是保护工作表的代码在条件语句内逻辑上有问题,当选中的单元格为空时就相当于解除保护,这时就可以改有数据的单元格了,无法达到你的要求。下面代码能满足输入数据后就不能修改并且解决了合并单元格出错问题。(注意在写代码前将整个表格的单元格属性取消锁定勾选)

Private Sub Worksheet_Change(ByVal Target As Range)

ActiveSheet.Unprotect Password:="123456"

If Target(1) <> "" Then Target.MergeArea.Locked = 1

ActiveSheet.Protect Password:="123456"

End Sub

百度网友237396a
2020-01-01 · TA获得超过1039个赞
知道小有建树答主
回答量:493
采纳率:80%
帮助的人:14.7万
展开全部
这代码并不是输入数据后自动锁定单元格,而是选中单元格就自动锁定。除了不能处理合并单元格外,代码还有二个问题。一是保护工作表的密码和取消工作表的密码不相同,二是保护工作表的代码在条件语句内逻辑上有问题,当选中的单元格为空时就相当于解除保护,这时就可以改有数据的单元格了,无法达到你的要求。下面代码能满足输入数据后就不能修改并且解决了合并单元格出错问题。(注意在写代码前将整个表格的单元格属性取消锁定勾选)

Private Sub Worksheet_Change(ByVal Target As Range)

ActiveSheet.Unprotect Password:="123456"

If Target(1) <> "" Then Target.MergeArea.Locked = 1

ActiveSheet.Protect Password:="123456"

End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蚂小蚁摆渡
2019-10-21 · TA获得超过711个赞
知道小有建树答主
回答量:1293
采纳率:62%
帮助的人:226万
展开全部
加一个遍历选中的区域来判断。
dim c as range
for each c in target
if c 小于号 大于号 "" then(自己改改,我这输入不进去这俩符号。。。)
target.locked=1
activesheet.protect password:=12345
exit for
endif
next
就是这样就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Ynzsvt
2019-10-21 · TA获得超过6665个赞
知道大有可为答主
回答量:1.5万
采纳率:40%
帮助的人:2694万
展开全部
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim c As Range
ActiveSheet.Unprotect Password:="123456"
For Each c In Target
If c = "" Then
Target.Locked = False
Else
Target.Locked = True
End If
Exit For
Next c
ActiveSheet.Protect Password:="123456"
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱精彩人生168
2019-10-22 · TA获得超过422个赞
知道小有建树答主
回答量:390
采纳率:50%
帮助的人:160万
展开全部
将第三行 If Target <> "" Then 改为 If Target(1, 1) <> "" Then
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式