如何以编程方式从Excel VBA项目中删除(已知)密码?
要明确:我想从VBA项目中删除密码,而不是工作簿或任何工作表.
另一种删除VBA项目密码的方法是;
使用十六进制编辑器打开xls文件.(即十六进制编辑http://www.hexedit.com/)
搜索DPB
将DPB替换为DPx
保存存档.
在Excel中打开文件.
如果您收到任何消息框,请单击"是".
从VBA项目属性设置新密码.
关闭并再次打开文件,然后键入新密码以取消保护.
更新:对于Excel 2010(适用于MS Office Pro Plus 2010 [14.0.6023.1000 64位]),
使用7zip打开XLSX文件
如果工作簿受到保护:
浏览文件夹 xl
如果工作簿受到保护,请右键单击workbook.xml
并选择" 编辑"
找到部分
(XXXX
是您的加密密码)
删除XXXX
部分.(即
)
保存文件.
当7zip要求您更新存档时,请说" 是".
关闭7zip并重新打开XLSX.
单击Review选项卡上的Protect Workbook.
可选:保存文件.
如果工作表受到保护:
浏览到xl/worksheets/
文件夹.
右键单击Sheet1.xml
,sheet2.xml
等,并选择编辑.
找到部分
删除加密密码(即.
)
保存文件.
当7zip要求您更新存档时,请说" 是".
关闭7zip并重新打开XLSX.
单击Review选项卡上的Unprotect Sheet.
可选:保存文件.
我找到了另一种方法来解决这个问题以避免VBA项目的密码,而没有丢失excel密码.
使用Hex-editor XVI32 进行处理
如果文件类型是XLSM文件:
使用7-Zip打开XLSM文件(右键单击 - > 7-Zip - > Open archive).
将xl/vbaProject.bin文件复制出文件(可以从7-Zip拖放),不要关闭7-Zip
使用HexEdit打开vbaProject.bin文件
搜索"DPB ="并将其替换为"DPx ="
保存文件
将此文件复制回7-Zip(再次,拖放工作)
在Excel中打开XLSX文件,如果系统提示"继续加载项目",请单击"是".如果出现错误提示,请单击"确定"
按Alt + F11以打开VBA编辑器.
按下它将显示错误"意外错误(40230)",只需单击确定(6或7次)直到它消失.
然后它会自动打开
这有一个使用SendKeys取消保护VBA项目的简单方法.这会让你进入项目,所以你必须继续使用SendKeys找出一种方法来删除密码保护:http: //www.pcreview.co.uk/forums/thread-989191.php
这是一个使用更先进,更可靠的方法进行无保护的方法.同样,它只会为您解锁VB项目. http://www.ozgrid.com/forum/showthread.php?t=13006&page=2
我没有尝试过任何一种方法,但如果这是你需要做的话,这可能会节省你一些时间...