从VBA项目中删除密码

Bar*_*Jon 50 security excel vba excel-vba password-protection

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

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

Uyg*_*r Y 115

另一种删除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.
  • 单击Review选项卡上的Protect Workbook.
  • 可选:保存文件.

如果工作表受到保护:

  • 浏览到xl/worksheets/文件夹.
  • 右键单击Sheet1.xml,sheet2.xml等,并选择编辑.
  • 找到部分 <sheetProtection password="XXXX" sheet="1" objects="1" scenarios="1" />
  • 删除加密密码(即.<sheetProtection password="" sheet="1" objects="1" scenarios="1" />)
  • 保存文件.
  • 当7zip要求您更新存档时,请说" 是".
  • 关闭7zip并重新打开XLSX.
  • 单击Review选项卡上的Unprotect Sheet.
  • 可选:保存文件.

  • 还有一个原始答案的补充:如果你有一些xlsx文件,在Excel中打开它并"另存为"xls.然后按照上面的步骤...... (6认同)
  • 如果你有一个`.xlsx`文件你也可以解压缩它,在`xl/vbaProject.bin`文件上搜索/替换然后重新压缩. (6认同)
  • 这个技巧似乎不再适用于Excel 2010(V 14.0.6129.5000).虽然我可以进入VBA编辑器,但在打开模块时我收到错误消息"意外错误(40230)" (3认同)
  • 刚刚将它与 Office Pro Plus 2016(64 位操作系统上的 32 位办公室)一起使用。收到“40230”错误,但是一旦我转到“项目属性”并禁用/重新启用密码保护,这些错误就会停止。 (2认同)

Joj*_*pen 13

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

使用Hex-editor XVI32 进行处理

如果文件类型是XLSM文件:

  1. 使用7-Zip打开XLSM文件(右键单击 - > 7-Zip - > Open archive).
  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. 然后它会自动打开

  • 这个技巧对我有用......但是经过了一些小修改......步骤:在20-25点击后也没有出现9错误.我已将文件保存到另一个文件中并且有效. (4认同)
  • 这在 Excel 2016 64 位中对我有用。而且您实际上并不需要十六进制编辑器。您可以使用 notepad++ 或任何类似的文本编辑器进行搜索和替换(第 4 步)。之前的评论也是如此。另存为新的 XLSM 文件并重新打开 excel 后,“意外错误 (40230)”消失。 (3认同)

Jon*_*ier 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

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

  • [Uygar Y 下面的答案](/sf/answers/548510301/) 仍然是适用于 Office 2016 的相关答案。事实上,它完全且轻松地工作,破坏了人们对使用 Office 的任何期望 -用于保护文档的密码。我从来没有对它们抱有太大的信心,假设它们可以通过数小时的计算机工作而被禁用,但他的答案对我来说只用了两“分钟”的工作。这些密码将诚实的和不懂计算机的人拒之门外,但恕我直言,它主要是万金油。 (2认同)