詳細說明(取消保護指定路徑中的 Excel 作業簿并重繪 作業簿連接,然后保護作業簿)
我在不同用戶使用的特定路徑中有四個作業簿。我已經使用 Power Query 將作業簿與我的 Mastersheet 合并,使用 Data--> Refreshall。一些內部團隊問題我處于保護作業簿的境地。
啟動后,主表不會重繪 ,它表明“[DataFormat.Error] 檔案包含損壞的資料。”。當我取消保護作業簿時,它作業正常。
所以,請幫我解決這個問題。
Option Explicit
Sub Unlock_Refresh()
Dim wb As Workbook, ws As Worksheet
Dim Filepath As String, Filename As String
Dim n As Long
Const pass = "1519"
Filepath = Worksheets("Sheet2").Range("A1").Value
If Right(Filepath, 1) <> "\" Then Filepath = Filepath & "\"
Filename = Dir(Filepath & "*.xls*")
Application.ScreenUpdating = False
Do While Filename <> ""
Set wb = Workbooks.Open(Filepath & Filename, Password:=pass)
With wb
.Unprotect Password:=pass
.RefreshAll
Application.Wait Now TimeValue("00:00:10")
.Protect Password:=pass
.Close savechanges:=True
End With
n = n 1
Filename = Dir
Loop
Application.ScreenUpdating = True
MsgBox n & " workbooks refreshed in " & vbLf & Filepath, vbInformation
End Sub
uj5u.com熱心網友回復:
不知道這是否與您遇到的問題有關,但您的代碼中似乎存在一些邏輯上的斷開??。
線:
Set wb = Workbooks.Open(Filepath & Filename, Password:=pass)
使用密碼打開作業簿,只有在作業簿受密碼保護才能打開時才需要該密碼。我在這里注意:
a)即使沒有設定“打開密碼”,這行代碼也能作業
b)因為代碼沒有設定打開密碼,有人假設這是手動完成的嗎?
線路:
.Unprotect Password:=pass
.RefreshAll
.Protect Password:=pass
取消保護書籍結構(和視窗),重繪 外部資料,然后重新保護書籍結構(僅)。我在這里注意:
a)不需要關閉書籍結構保護,以重繪 外部資料
b)這不會設定“打開密碼”
所以不清楚為什么取消保護并重新 -保護邏輯周期有沒有?
如果相關,以下代碼將用于設定“打開密碼”:
[workbook].Protect = pass
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/351347.html
上一篇:改進VBA,它過濾當前月份 月份到年末的資料透視表欄位
下一篇:在Mac上的VBA中打開檔案
