需求:解除excel的sheet保护,不知道sheet保护密码。
这个方法是偶然看到的,可能是利用了excel的bug,亲测可用,1秒破解。
sub upt()
ActiveSheet.Protect DrawingObjects:=True, CONTENTS:=True, AllowFiltering:=True
ActiveSheet.Protect DrawingObjects:=False, CONTENTS:=True, AllowFiltering:=True
ActiveSheet.Unprotect
end sub
使用方法:选中你要解密的sheet,打开开发工具,进入vb,双击sheet复制粘贴上面的代码,点击运行即可。
注意:运行一次代码解除的是当前选择的sheet的保护,如果有多个sheet要解密,则要回到excel选择后再次运行代码。
原理:
其实我觉得是个bug,运行后修改了sheetProtect标签的参数。通过rar方法可以看到加密前的标签参数和加密后标签参数的差异。
加密前:
<sheetProtection algorithmName="SHA-512" hashValue="KBIL4ZsCG4m6s2CllviWgQwbfc+H19588CtpRq+odAFynHbpE2uUg1FuR2Qg==" saltValue="IJA1PqvRRmNsv8Pbp0L" spinCount="100000" sheet="1" objects="1" scenarios="1" formatCells="0" formatColumns="0" formatRows="0"/>
解密后:
<sheetProtection autoFilter="0"/>
附rar破解工作簿和工作表的保护方法:
1.选择要破解的excel,将后缀改成: .rar
2.进入压缩文件,进入xl文件夹,打开workbook.xml文件,如果有workbookProtection标签,则完全删除。然后保存更新压缩文件退出。
3.重新打开rar,进入xl,进入worksheets文件夹 ,进入需要破解的sheet,同上删除sheetProtection标签,然后保存更新压缩文件退出。
4.改回.xlsx后缀即可。