大家好,这是Excel小火箭的第9次分享,如有不当的地方,欢迎批评指正。
有时候,我们打开工作表发现只有部分单元格可以编辑,点击其他单元格都显示“您试图更改的单元格或图标受保护”,既没法正常编辑或下拉填充,也没有办法快捷筛选。

这时候我们可以通过输入密码解除保护,就可以正常编辑了。但是,但是……
有可能我们忘记了密码,又有可能是因为设置单元格保护的人是为了保证源数据不被破坏,但对于打工人来说,仅仅是想操作一下单元格而已~
比如,今天有小伙伴说我们的一个料表模板文件需要更改里面的数据和公式,但是制作原表格的同事休假了还忘记了密码…
又比如,上次@Yi同学说经常需要跟业主的报表打交道,但是报表的好多单元格都被设置保护了,没有办法下拉公式,严重影响打工人的效率和搬砖心情~
今天我们就来讲一讲:如何解除工作表,单元格的保护?
01工作表的存在形式
严格意义来说,每一个工作表/簿都是由一个个xml和样式表构成的压缩包,即zip格式,比如,我们可以修改表格文件名为zip格式,解压后可以看到一个个独立的文件。

02解除保护的原理
解压工作表后,我们知道了工作表由一个个xml文件组成,其实这些xml里面即包含了我们设置的保护密码,只需要删除它里面的加密字段,即可解除保护。

03解除保护的关键
解除工作表保护前,我们需要先解除工作薄的保护,即文件夹下workbook.xml中的保护,否则可能因为有隐藏工作表的存在而无法正常解除密码。

在xl文件夹下,右键打开workbook.xml,搜索password,删除<>里的内容,比如
<workbookProtection workbookPassword="CF66" lockStructure="1"/>


04取消隐藏的工作表
解除工作簿的保护后,将以下VBA代码粘贴后运行,运行结果即是取消隐藏的工作表,当然你也可以逐个操作取消隐藏的工作表。
Sub rokcket_Unprotect()'取消隐藏的工作表'// 2023-10-23 @Sdx孙大侠 公众号:Excel小火箭 Dim sht As Worksheet For Each sht In Worksheets sht.Visible = xlSheetVisible '取消隐藏 Next End Sub
还不会操作VBA的同学看这里:VBA实例:一分钟教你学会,如何操作Excel VBA
05解除受保护的工作表
具体步骤:修改名称为zip→解压→修改文件名称→右键用记事本打开xml文件→搜索password→删除<workbookProtection..>内的内容
将xml文件拖回到zip对应xl文件夹下,取消zip,打开文件,大功告成!还不会的同学可以看看视频:
