在保护工作表时,默认情况下勾选的允许的操作是“选定锁定单元格”和“选定未锁定单元格”两个。其实我们还可以设置更多选项,比如允许“插入行”、“删除行”。
但是有同学就遇到问题了,明明勾选了允许“插入行”、“删除行”,在插入行时没有任何问题,但是在删除行时怎么就遇到错误了呢?
在删除行时出现以下提示,删除不成功。
关于这个问题,我们需要了解一个知识点,在保护工作表时,想要使单元格的数据不被更改,一定要在单元格格式设置对话框的“保护”选项卡下面勾选“锁定”。这样保护工作表才能起到保护作用。由于工作表默认情况下是勾选“锁定”的,所以这个选项往往容易被忽略。
关于工作表保护,请参阅之前的文章。
回到原来的问题,为什么不能删除行呢?就是因为有单元格设置了“锁定”。
如果一行中任意一个单元格设置了“锁定”,在工作表保护时,即使设置了允许删除行,实际上也是删除不了的。假如能删除的话,就破坏了工作表保护这种机制,工作表保护、单元格保护就失去了它原有的作用。
如果一行中所有单元格都取消勾选“锁定”,那么在工作表保护状态下勾选允许“删除行”时,就可以删除这一行。
如果在工作表保护时,没有勾选允许“删除行”,即使所有单元格都取消勾选“锁定”,也是不能删除这一行的。
在插入行时,新插入的行会继承上一行的格式设置。如果插入行的上一行单元格全部取消勾选“锁定”,并且在工作表保护时勾选允许“删除行”,那么新插入的行也可以被删除。
如果单元格是“锁定”的,要在工作表保护状态下做到删除行,我们只好求助于VBA了。宏代码分三步:1、取消工作表保护;2、删除行;3、保护工作表。
按Alt F11打开VBA编辑器,双击左侧的工程资源管理器中的ThisWorkbook,粘贴上以下代码。
插入一个矩形,在矩形上点击右键菜单中的“指定宏”,在弹出的对话框中选择DeleteRow这个宏。
保护工作表,设置保护密码为abc。
这时,我们选中要删除的行,点击矩形按钮,就可以删除选中的行了。
如果你要设置成其他密码,注意将代码中的abc换成你设置的密码。
小伙伴们,今天的技能你Get了吗?
--End--
联系客服