为了防止别人修改数据,工作中我们常常会为工作表设置密码,防止别人修改数据,只能查看不能修改的,达到保护数据的目的。
先为工作表加密,然后保存退出:
但是一旦忘记就有点麻烦了,这里介绍2种破解方法:
一、删除工作表保护代码这个是网上比较常见的方法,具体步骤如下:
1、把excel文件后缀名改为 .rar(或者其他压缩方式,比如 .zip等)。
2、打开 rar 文件(不要解压) > xl文件夹 > worksheets > 找到加密的工作表(我这里是sheet16)。
3、将sheet16.xml文件拖拽出来,用记事本打开,Ctrl+F 搜索“protection”,将sheetProtection的那段代码以及<>删除,然后保存。
也可以不拖拽出来,在压缩包内直接打开此文件修改保存也是一样的。
4、将修改后的sheet16.xml再拖拽回去,替换原文件。
5、把 .rar 后缀再改为 .xlsx,打开Excel文件,密码已经破解。
但是上面这种方法比较麻烦,不但需要修改文件后缀名,还需要找到对应的加密工作表,worksheet中所有的工作表名称都是“sheet+数字”的形式,但是如果工作表很多,要一个个去数着查找,相信很多人都不愿意这么做。第2种方法就可以解决这个问题:
二、VBA代码破解详细步骤如下:
1、打开VBA编辑器:开发工具 > Visual Basic
如果没有“开发工具”选项卡,在 文件 > 选项 > 自定义功能区 > 主选项卡 > 勾选开发工具。
打开VBA编辑器之后,可以看到左边的工作表列表,而且有工作表标签名,方便查找。
2、双击需要破解密码的文件,在右侧代码编辑区填入下面的代码
Sub Pojie() ActiveSheet.Protect AllowFiltering:=True: ActiveSheet.UnprotectEnd Sub注意格式要保持一致
3、运行代码
在“工具栏选项”中点击“运行子程序/用户窗体”按钮
或者在选项卡中选择“运行”> “运行子程序/用户窗体”菜单
一般会弹出下面的宏窗口,点击“运行”即可完成破解
如果不出现宏窗口,当然我们也可以手动调出:
如果两张工作表都有VBA代码,点击运行时会提供选择破解哪一个表格:
上面弹出的窗口说明破解的是sheet16,但是很多时候不会出现这个弹框,也就是点击运行子程序/用户窗体”后没有任何提示就完成了破解,那如果我多张表格都加密了,我怎么知道破解的是哪一个呢?
这就要看刚才的代码:ActiveSheet,Active可以解释为活跃、激活的意思,也就是说如果不弹上面的框完成破解的是当前激活的工作表,和你双击写入代码的工作表无关,下面做一下验证:
我把“破解密码1(sheet16)”和“破解密码2(sheet17)”两张工作表都加密,把“破解密码2(sheet17)”工作表激活,但是我在VBA编辑器中双击“sheet16(破解密码1)”工作表,在这里加入上面一段破解代码,看看破解的是哪一个工作表?
从动态图可以看到结果:虽然是在“sheet16(破解密码1)”中写入的代码,但是破解的却是“破解密码2(sheet17)”工作表。
结论:如果出现宏窗口,选择需要破解的工作表名,点击“运行”即可;如果不出现宏窗口,默认破解的是当前激活的工作表。
如果有问题,请在下方留言!
上一篇:Excel:工作表保护的几种方式,你会几种?
我是【职场鹿说】,专注于分享职场知识、小故事,教你掌握人生大职场!