2016-11-08 129 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