我試圖通過VBA打開Excel(xlsm)文件。它可能會或可能不會受到(已知)密碼的保護。我正在使用此代碼:檢查Excel文件是否受密碼保護
On Error Resume Next
Workbooks.Open filename, Password:=user_entered_pw
opened = (Err.Number=0)
On Error Goto 0
現在,如果工作簿具有密碼,此工作正常。但如果它不受保護,則無法打開。顯然,如果工作簿結構保護處於活動狀態,則這是XL2007中的一個錯誤。 (http://vbaadventures.blogspot.com/2009/01/possible-error-in-excel-2007.html)。在舊的XL2003上,提供密碼將同時打開無保護和密碼保護的文件。
我想:
Workbooks.Open filename, Password:=user_entered_pw
If (Err.Number <> 0) Then workbooks.open filename
這適用於不受保護和受保護的文件。但是如果用戶輸入了錯誤的密碼,它會進入第二行並彈出我不想要的「輸入密碼」提示。
如何解決這個問題?
您是否檢查過「Err.Number」?如果密碼錯誤/文件不受保護,你可能會得到不同的結果嗎? – 2010-04-20 06:34:40
我檢查過,Excel總是給出錯誤1004(應用程序特定的錯誤)。不幸的是,即使錯誤描述是相同的。 – 2010-04-20 07:10:25