2016-11-08 148 views
0

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

我试过用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 
+0

虽然大多数人会讨厌使用它的想法,如果这是怎么回事,而没有一个是积极的系统上运行,使用sendkeys可能不那么可怕。 – Rdster

+0

如果你不输入密码不是该文件仍然只读?你可以做一个保存 - 而不是只读时打开? – tjb1

+0

你是对的@ tjb1,它只读,如果我只是按下输入,没有注意到。不,如果我做了保存,我该如何打开新文件?另一方面,我可以在没有密码的情况下将文件保存到其他地方,更新该文件,然后将其保存为新密码的密码保护!没有这样想过,感谢这个主意! –

回答

1

是工作簿密码保护或写保留?

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

如果工作簿写保留正确的命令应该是:

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

试试这个:

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

你只是在Workbooks.Open上使用另一种语法,代码是相同的,所以不,不起作用。 –

+0

它在Excel 2010中工作...当我回到家时我在办公室2013检查可能更接近365 – areklipno