2008-11-07 74 views
38

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

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

+0

做了一些谷歌上搜索 - 它似乎没有直接的办法 - 你必须使用的SendKeys杂牌[http://www.mrexcel.com/forum/showthread.php?t = 49034](HTTP://www.mrexcel。com/forum/showthread.php?t = 49034) – 2008-11-07 16:44:29

+3

标记的答案并不是最好的....最佳答案已经过了几年后,由Uygar Y – 2013-04-16 04:41:20

+1

@JeremyThompson - 那个答案没有回答这个问题。它解释了如何手动删除未知密码。此问题询问如何_programmatically_删除_已知密码。 – 2013-10-18 15:02:50

回答

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

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

2

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

这一个不使用SendKeys。

让我知道这是否有帮助! JFV

98

另一种方式来删除VBA项目的密码;

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

UPDATE:对于Excel 2010(Works的微软Office专业版加2010 [14.0.6023.1000 64]),

  • 打开XLSX与7zip的

如果工作簿文件被保护:

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

如果工作表保护:

  • 浏览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。
  • 点击取消保护表审查选项卡。
  • 可选:保存文件。
2

我发现了另一种方法来解决这个问题,以避免使用excel密码来避免VBA项目的密码。

使用十六进制编辑器XVI32的过程

如果文件类型是XLSM文件:

  1. 公开赛的7-Zip的XLSM文件(右键 - > 7-Zip的 - >打开档案)。
  2. 复制XL/vbaProject.bin文件出来的文件(你可以将它从7-Zip的下降),不关闭的7-Zip
  3. 打开vbaProject.bin与hexedit
  4. 搜索文件“DPB =”,如果提示有“DPX =”
  5. 保存文件
  6. 将此文件复制回的7-Zip(再次,拖放作品)
  7. 在Excel中打开XLSX文件,替换它“继续加载项目”,单击是。如果出现错误提示,请单击确定。
  8. 按下Alt + F11打开VBA编辑器。
  9. 按下它将显示错误“意外错误(40230)”,只需单击确定(6或7次),直到它消失。
  10. 然后,它会自动打开