从VBA项目中删除密码

时间:2008-11-07 15:48:20

标签: excel vba security excel-vba password-protection

如何以编程方式从Excel VBA项目中删除(已知)密码?

要明确:我想从VBA项目中删除密码,而不是工作簿或任何工作表。

6 个答案:

答案 0 :(得分:109)

删除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并选择修改
  • 找到<workbookProtection workbookPassword="XXXX" lockStructure="1"/>部分(XXXX是您的加密密码)
  • 删除XXXX部分。 (即<workbookProtection workbookPassword="" lockStructure="1"/>
  • 保存文件。
  • 当7zip要求您更新存档时,请说
  • 关闭7zip并重新打开XLSX。
  • 点击查看标签上的保护工作簿
  • 可选:保存文件。

如果工作表受到保护:

  • 浏览到xl/worksheets/文件夹。
  • 右键点击Sheet1.xmlsheet2.xml等,然后选择修改
  • 找到<sheetProtection password="XXXX" sheet="1" objects="1" scenarios="1" />
  • 部分
  • 删除加密密码(即<sheetProtection password="" sheet="1" objects="1" scenarios="1" />
  • 保存文件。
  • 当7zip要求您更新存档时,请说
  • 关闭7zip并重新打开XLSX。
  • 点击查看标签上的取消保护表
  • 可选:保存文件。

答案 1 :(得分:10)

我找到了另一种方法来解决这个问题,以避免使用VBA Project的密码,而无需删除excel密码。

使用 Hex-editor XVI32 进行处理

如果文件类型是XLSM文件:

  1. 使用7-Zip打开XLSM文件(右键单击 - &gt; 7-Zip - &gt;打开存档)。
  2. 将xl / vbaProject.bin文件复制出文件(可以从7-Zip拖放),不要关闭7-Zip
  3. 使用HexEdit
  4. 打开vbaProject.bin文件
  5. 搜索&#34; DPB =&#34;并用&#34; DPx =&#34;
  6. 替换它
  7. 保存文件
  8. 将此文件复制回7-Zip(再次,拖放工作)
  9. 在Excel中打开XLSX文件,如果系统提示“#34;继续加载项目&#34;”,请单击“是”。如果出现错误提示,请单击“确定”。
  10. 按Alt + F11打开VBA编辑器。
  11. 按下它会显示错误“意外错误(40230)”,只需单击“确定”(6或7次)直到它消失。
  12. 然后它将自动打开

答案 2 :(得分:9)

这是一个使用SendKeys取消保护VBA项目的简单方法。这会让你进入项目,所以你必须继续使用SendKeys找出一种方法来删除密码保护: http://www.pcreview.co.uk/forums/thread-989191.php

这是一个使用更高级,更可靠的方法进行取消保护的方法。同样,它只会为您解锁VB项目。 http://www.ozgrid.com/forum/showthread.php?t=13006&page=2

我没有尝试过任何一种方法,但如果这是你需要做的话,这可能会节省你一些时间......

答案 3 :(得分:2)

我发现这个here描述了如何设置VBA项目密码。您应该可以修改它以取消设置VBA项目密码。

这个不使用SendKeys。

如果这有帮助,请告诉我! JFV

答案 4 :(得分:1)

我在Excel 2016上的2美分:

  1. 使用xls打开Notepad++文件
  2. 搜索DPB=并将其替换为DPx=
  3. 保存文件
  4. 打开文件,打开VB编辑器,打开的模块不起作用(error 40230
  5. 将文件另存为xlsm
  6. 有效

答案 5 :(得分:0)

用7个zip文件打开xlsm文件后,解压缩vbaproject.bin并在Notepad ++中用DPx替换DpB并重新保存,我遇到了很多vbaproject错误,vba项目密码消失了,但是没有代码/表格。

我右键单击导出,并能够重新导入到新项目。