在没有密码提示的情况下从vba打开受密码保护的excel文件

时间:2016-11-08 13:11:10

标签: excel vba excel-vba password-protection

我必须每天打开一个excel文件并刷新内容以获取最新的销售数据。我想用Windows任务调度自动执行此操作。由于excel文件受密码保护,我读到最好的方法是使用workbook_open-macro创建另一个excel文件,打开所需的excel文件。 问题是,我发现的代码仍然提示用户输入密码。我可以点击进入然后它会打开,但为什么还有提示呢?我正在使用Excel 365,是否有一些解决方法或我做错了什么?

我尝试使用ReadOnly:= False,没有,没有任何改变。如果我设置ReadOnly:= True,它可以工作,但是在更改后我无法保存文件。

这是我正在使用的代码:

Sub Workbook_Open()
  Application.DisplayAlerts = False
  Workbooks.Open Filename:="Path\file.xlsx", Password:="*****", ReadOnly:=False
  Application.DisplayAlerts = True
  ThisWorkbook.Close SaveChanges:=False
End Sub

2 个答案:

答案 0 :(得分:2)

工作簿密码是受保护还是写保留?

写入保留文件只能在没有正确密码的情况下以只读方式打开,而密码保护根本无法打开。

如果工作簿是写保留的,则右命令应为:

Workbooks.Open Filename:="Path\file.xlsx", WriteResPassword:="*****", ReadOnly:=False

答案 1 :(得分:0)

试试这个:

  Application.DisplayAlerts = False
  Workbooks.Open "path\file.xlsx", , , , "password"
  Application.DisplayAlerts = True
  ThisWorkbook.Close SaveChanges:=False