作者:绿色风
分类:
时间:2022-08-17
浏览:140
楼主 悟空师弟 |
Q:如何用VBA实现在空单元格输入数据后即不能再修改?
A:代码如下: - Private Sub Worksheet_Change(ByVal Target As Range)
- y = ProtectContents
- Unprotect ("123")
- If Target = "" Then
- Target.Locked = False
- Else
- Target.Locked = True
- End If
- If y = True Then
- Protect ("123")
- End If
- End Sub
代码功能介绍: 工作表被保护时空单元格内输入数据后不可再修改,如想修改,必须先取消工作表的保护。 |
2楼 悟空师弟 |
补充说明: 如希望修改完成保存文档后,工作表重新得到了保护,可在工作簿事件中添加下面这段代码来实现:- Private Sub Workbook_BeforeClose(Cancel As Boolean)
- Sheet1.Protect ("123") '只保护工作表 Sheet1 ,密码为:123
- End Sub
|
3楼 高玉甫 |
师傅,首次使用还可以,但是“撤销工作表保护”进行修改数据后,无论无核,工作表的·保护都不存在了,还请师傅改善一下。 |
4楼 悟空师弟 |
→→→→→→→→→→→→→→→→→→ 如果“撤销工作表保护”进行修改数据后,需要手动保护工作表或保存工作簿之后才重新保护! 这不是你要的效果吗?
如果这样还不是你要的效果,请把要实现的效果罗列出来! |
5楼 高玉甫 |
师傅,请把如下网址的附件也上传上来,方便需求者查找,谢谢您。 http://www.exceltip.net/thread-10132-1-1.html 2 楼 |
6楼 悟空师弟 |
→→→→→→→→→→→→→→→→→→→→→→→--
OK,传到这里!
21职工信息表.rar |
7楼 lrlxxqxa |
楼主的代码有实用价值,收藏学习了,谢谢! |
8楼 daminda |
老师,我想让其中一列数据不能修改,其他数据还可以修改,应该如何实现? 请指教,谢谢。 |
9楼 kevinchengcw |
学习一下 |
10楼 肖世华 |
我试过,怎么不行呀,是哪里出了问题呢 |
11楼 肖世华 |
悟空大师,我想要保存后,单元格里面的数据就不可以修改,可以调整一下么,谢谢哈 |
12楼 研究研究 |
- Private Sub Workbook_BeforeClose(Cancel As Boolean)
- Sheets("sheet1").Unprotect "123" '解除保护
- Sheets("Sheet1").Select
- Selection.SpecialCells(xlCellTypeConstants, 23).Select
- Selection.Locked = True
- Selection.FormulaHidden = False
- Range("A1").Select
- Sheets("sheet1").Protect "123" '添加保护
- ThisWorkbook.Save
- End Sub
如何用VBA实现当空单元格输入数据后即不能再修改?.rar |
13楼 肖世华 |
谢谢研究大师的热心帮助,谢谢! |
14楼 qinhuan66 |
好好学习天天向上 |
15楼 澹泊明志 |
老师,能不能把详细的编辑过程写出来啊, |
16楼 zjgzgs |
正要用到,谢谢老师 |
17楼 wumin88838 |
要好好看下。 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一