肥仔教程网

SEO 优化与 Web 开发技术学习分享平台

既要保护部分工作表,还要在未受保护的区域添加删除列,咋整?

前不久我给大家讲解过如何只保护工作表中的部分区域不让编辑,而其他区域仍然可以正常读写,详情请参阅 只想保护 Excel 部分单元格,为何整个工作表都不能编辑了?


有同学试过以后提出了更高阶的要求:如果用文中的方法设置,其他区域虽然可以编辑,但是仅仅能输入或删除单元格中的内容而已,添加行列、合并或取消合并单元格这种操作却被禁用了。


如果不但要让其他区域可以编辑,还要允许所有其他操作,又该怎么设置呢?


案例:


将下图 1 中前三列保护起来,不得修改,其他区域不但可以修改,所有功能都必须保留,添加、删除列、合并单元格等任何操作都不受影响。


效果如下图 2 所示。


解决方案:


通常情况下,我们都这样保护部分工作表。


1. 全选整个工作表 --> 按 Ctrl+1 --> 在弹出的对话框中选择“保护”选项卡 --> 取消勾选“锁定”


2. 选中前 3 列 --> 按 Ctrl+1


3. 在弹出的对话框中选择“保护”选项卡 --> 勾选“锁定”--> 点击“确定”


4. 选择菜单栏的“审阅”-->“保护工作表”


5. 在弹出的对话框中输入密码 --> 点击“确定”


6. 再次输入密码 --> 点击“确定”


此时整个工作表的前 3 列就已经被保护起来了,如果试图修改其中的任意单元格,会弹出警告框,而修改其他区域则不受影响。


但是现在有一个问题:虽然可以修改非保护区域,但是却不能再更改工作表的布局,比如在未受保护的区域试图插入、删除列、合并单元格都不行了,这些功能完全被禁用了。


如何能让未受保护的区域的编辑功能完全不受限呢?


那就可以用下面这种方法。


7. 选中工作表名称 --> 右键单击 --> 在弹出的菜单中选择“查看代码”


8. 在右侧的窗体中的第一个下拉菜单中选择 Worksheet


9. 输入以下代码:


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If ActiveCell.Column < 4 Then

ActiveSheet.Protect aaa '对前3列设置工作表保护,密码设置为:aaa

ElseIf ActiveCell.Column > 3 Then

ActiveSheet.Unprotect aaa '不在非前3列时,解除工作表保护

End If

End Sub


10. 关闭 VBE --> 将 Excel 保存为 .xlsm 格式的文件


现在打开这个宏文件,再试一下,在保护部分工作表的同时,其他区域的功能丝毫不受影响。


很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。

现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言