在excel里利用vba怎么对指定单元格,或区域单元格保护
1、打开EXCEL2003,输入并编辑好相关的数据,如下图,录入九年级学生相关的成绩,并设置好字体大小和行列的宽高等。
2、编辑相关的统计公式,如在原始数据最后一列增加总分列,并在K4单元格输入:=SUM(D4:J4),然后往下拖拉填充公式。
3、插入VBA模块,点击工具——宏——Visual Basic 编辑器,
4、在编辑器那里点击插入——模块,就新建一个VBA模块编辑页面。
5、在VBA模式那里编写如下图的代码,用Sub给代码起名称如:保护公式,激活并解除工作表密码(之前没有设置密码也可以这样写),同时解决单元格的锁定,选中所有单元格并锁定隐藏,然后加密,保存并退出VBA编辑模式。
6、执行代码:点击EXCEL工作薄的工具——宏——宏。
7、然后选择刚刚编辑好的代码:保护公式,点击执行。这样包含公式的单元就被锁定保护了,只有解锁才能编辑。
首先要知道,要保护一个单元格不能编辑,需要满足两个条件,第一个是设置单元格格式->保护->锁定要勾选,然后整个表要锁定。
解决思路如下:
定义目标表 Set sh = Sheets("sheet1"),可以修改表格名称
先解锁整个表sh.Unprotect
选择所有的单元格,并设置单元格格式->保护->取消勾选锁定
sh.Cells.Select
Selection.Locked = False
选择目标单元格区域,并设置单元格格式->保护->勾选锁定要
sh.Range("B2:E7").Select 这里可以改变目标区域B2:E7
Selection.Locked = True
锁定整个表sh.Protect
完整代码:
Sub ProtectRange()
'Set sh = ActiveSheet
Set sh = Sheets("sheet1")
'解锁表
sh.Unprotect
' 选择所有的单元格并设置不锁定
sh.Cells.Select
Selection.Locked = False
' 选择目标单元格B2:E7,并设置锁定
sh.Range("B2:E7").Select
Selection.Locked = True
' 锁定表
sh.Protect
End Sub
效果图:
2013-06-07
Sub test()
Cells.Locked = True
Range("G5:G6, H5, G10:H13").Locked = False
ActiveSheet.Protect "12345"
End Sub
密码自己改,运行此宏(直接按F5)就可以了。
2013-06-07
换成:Range("G5:G6","H5","G10:H10","G13:H13")
如果你的代码能实现保护的话,把里面的都替换就行了