主题是Excel保护工作表的一些技巧。
因为自己做了一个excel,其中有一些复杂的计算,需要提交给客户去和系统做验证。
暂时不能让用户看到我写的VBA,所有公式能看不能改,所以要保护工作表,但是又要能够让他点击按钮去做自动计算。
菜鸟我可是折腾了好久才搞定了。
同时总结了这些相关的规律。
一、禁止在应用公式的列、格直接手工录入与查看公式:
比如C列是由A列值+B列值的求和公式自动算出来的,怎样避免别人手工在C列录入数值,而只能在A、B列录入数值自动计算C列值
1、选定A、B列,点击右键>设置单元格格式>保护>去掉“锁定”前的勾;
2、当前工作表标签>右键>保护工作表>只勾选“选定未锁定单元格”,OK
【效果】A、B列可以选定可以修改,而C列不能选定任何单元格,因而也不能查看公式。
二、禁止别人修改公式,但允许查看公式,除公式外的单元格可以编辑:
1、选中整张工作表,点击右键>设置单元格格式>保护>去掉“锁定”前的勾;
2、点击“快速选择”中的“定位条件”,勾选“公式”,确定后选中当前工作表的所有带公式单元格;
右键>设置单元格格式>保护>打上“锁定”前的勾;
3、当前工作表标签>右键>保护工作表>勾选“选定锁定单元格”和“选定未锁定单元格”,OK
【效果】所有单元格都能选定,能查看;但带公式的单元格被锁定不能修改。
三、禁止别人编辑VBA代码:
1、单击“开发工具”菜单,点击“VBA编辑器”;
2、在VBA编辑窗口,单击“工具”菜单-“VBAProject属性”菜单项,打开“VBAProject-工程属性”对话框,选择“保护”选项卡,
勾选“查看时锁定工程”,然后在“密码”和“确认密码”输入框输入密码,单击“确定”按钮,即可设置VBA工程密码。
Excel设置VBA工程密码可保护输入的VBA代码,防止别人有意或误修改自己的VBA代码
【效果】查看VBA时必须输入密码,否则看不了任何属性
四、锁定工作表,但能够通过VBA更新数据:
假设锁定对象为Sheet1,则在VBA中先解除锁定,数据更新完后增加锁定:
Sheet1.Unprotect.password:="123"(密码)
Sheet1.Protect.password:="123"(密码)
【效果】VBA能更新,更新完后恢复锁定。但这种情况下应结合设定VBA工程密码,否则工作表保护的密码就暴露了。
五、禁止编辑VBA代码的同时,可以点击按钮:
1、保持工作表为未保护的状态;
2、选中按钮控件,点击右键>设置控件格式>保护>去掉“锁定”前的勾;
3、当前工作表标签>右键>保护工作表>勾选“选定锁定单元格”和“选定未锁定单元格”,OK
【效果】所有单元格可以点击,可以查看但不能修改,按钮可以点击,点击后执行VBA更新数据。