59

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

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

4

6 回答 6

131

删除 VBA 项目密码的另一种方法是;

  • 使用十六进制编辑器打开 xls 文件。(即十六进制编辑http://www.hexedit.com/
  • 搜索 DPB
  • 将 DPB 替换为 DPx
  • 保存存档。
  • 在 Excel 中打开文件。
  • 如果您收到任何消息框,请单击“是”。
  • 从 VBA 项目属性设置新密码。
  • 关闭并再次打开文件,然后输入新密码以取消保护。

更新:对于 Excel 2010(适用于 MS Office Pro Plus 2010 [14.0.6023.1000 64bit]),

  • 使用 7zip 打开 XLSX 文件

如果工作簿受到保护:

  • 浏览文件夹xl
  • 如果工作簿受到保护,请右键单击workbook.xml并选择编辑
  • 查找部分<workbookProtection workbookPassword="XXXX" lockStructure="1"/>XXXX是您的加密密码)
  • 移除XXXX部分。(即。<workbookProtection workbookPassword="" lockStructure="1"/>
  • 保存文件。
  • 当 7zip 要求您更新存档时,说Yes
  • 关闭 7zip 并重新打开您的 XLSX。
  • 单击“审阅”选项卡上的“保护工作簿” 。
  • 可选:保存您的文件。

如果工作表受到保护:

  • 浏览到xl/worksheets/文件夹。
  • 右键单击Sheet1.xml,sheet2.xml等并选择Edit
  • 找到部分<sheetProtection password="XXXX" sheet="1" objects="1" scenarios="1" />
  • 删除加密密码(即。<sheetProtection password="" sheet="1" objects="1" scenarios="1" />
  • 保存文件。
  • 当 7zip 要求您更新存档时,说Yes
  • 关闭 7zip 并重新打开您的 XLSX。
  • 单击“审阅”选项卡上的“取消保护工作表” 。
  • 可选:保存您的文件。
于 2011-10-20T12:23:39.997 回答
22

我找到了另一种方法来解决这个问题,以避免 VBA 项目的密码,而不会丢失 excel 密码。

使用十六进制编辑器 XVI32 进行处理

如果文件类型是 XLSM 文件:

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

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

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

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

于 2008-11-07T16:44:00.633 回答
3

我在 Excel 2016 上的 2 美分:

  1. 打开xls文件Notepad++
  2. 搜索DPB=并替换为DPx=
  3. 保存文件
  4. 打开文件,打开VB编辑器,打开模块不起作用(error 40230
  5. 将文件另存为 xlsm
  6. 有用
于 2020-08-25T14:47:25.353 回答
2

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

这个不使用 SendKeys。

让我知道这是否有帮助!联合部队

于 2008-11-07T16:40:16.647 回答
0

使用 7 zip 打开 xlsm 文件,提取 vbaproject.bin 并在记事本 ++ 中用 DPx 替换 DpB 并重新保存后,我得到了很多 vbaproject 错误,vba 项目密码消失了,但没有代码/表单。

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

于 2019-09-12T11:35:49.767 回答