【发布时间】:2010-04-20 06:18:10
【问题描述】:
我正在尝试通过 VBA 打开 Excel (xlsm) 文件。它可能会或可能不会受到(已知)密码的保护。我正在使用此代码:
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吗?如果密码错误/文件不受保护,您可能会得到不同的结果吗? -
我检查过,Excel 总是给出错误 1004(特定于应用程序的错误)。不幸的是,即使是错误描述也是一样的。