如何从VBA代码中打开受保护的工作簿?

时间:2013-04-02 08:58:53

标签: vba excel-vba excel-2007 excel

如何从VBA代码中打开受保护的工作簿(带密码)? 我已经尝试过这个指令了

Workbooks.Open Filename:="D:\file.xls", ReadOnly:=False, Password:="semsem" 它不起作用。 有没有关于这个问题的建议?
注意:我使用的是EXcel2007。

3 个答案:

答案 0 :(得分:1)

在vba项目中,您是否保护项目不被查看?如果是这样,我不认为这是可以实现的,因为如果您想要进行任何代码更改,项目需要在物理上不受保护。这对于vba编程点没有帮助,但是从用户无篡改的角度来看也是如此。

  1. 如果您不打算编辑代码,我只建议您保留密码。

  2. 如果您打算更改代码,我只能建议您保护项目不受保护,并尝试以其他方式保护文件。

  3. 未经测试但想法是以编程方式创建包含新代码的工作表,并将此工作表复制到此工作簿中。

  4. 没什么帮助,但我能提供的唯一答案。

    手动删除保护:

    1. 如果这是一次性的,双击项目并输入密码,一旦完成,保存并关闭项目将保持这种保护。 http://www.allaboutvba.vbapasswordremover.net/images/screen/protect-excelrun10.gif

    2. 或者如果它是永久性的,则右键单击项目>项目属性>保护并取消选中锁定项目以供查看。 http://www.allaboutvba.vbapasswordremover.net/images/screen/protect-excellock8.gif

    3. 来自All About VBA

      的图片

答案 1 :(得分:1)

如果工作簿受密码保护,则可以使用VBA打开它。 但是,如果VBA宏受密码保护,则无法从VBA打开或控制它。出于安全目的,这是不允许的。

另一种选择是传递KeyPress事件以输入密码。

答案 2 :(得分:-1)

尝试以下方法:

Workbooks.Open Filename:="D:\file.xlsx", Password:="semsem"