2008-11-07 14 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. 然後,它會自動打開