簡體   English   中英

Excel宏數據刷新和保護

[英]Excel macro data refresh and protection

在Excel宏中,我需要取消保護工作表,刷新數據,然后保護工作表。 以下作品:

Dim rs As Worksheet
For Each rs In Worksheets
    rs.Unprotect Password:="SomePassword"
Next rs
ActiveWorkbook.RefreshAll

這不是:

Dim rs As Worksheet
For Each rs In Worksheets
    rs.Unprotect Password:="SomePassword"
Next rs
ActiveWorkbook.RefreshAll
For Each rs In Worksheets
    rs.Protect Password:="SomePassword"
Next rs

產生以下錯誤:

您嘗試更改的單元格或圖表受到保護,因此為只讀。

我嘗試了許多方法來延遲宏的繼續,直到刷新完成,但沒有任何效果。 我在該論壇上查看了方法,但沒有找到有效的方法。 有什么用?

請嘗試以下方法之一:

  1. ActiveWorkbook.RefreshAll之后添加DoEvents 像這樣:

     Dim rs As Worksheet For Each rs In Worksheets rs.Unprotect Password:="SomePassword" Next rs ActiveWorkbook.RefreshAll: DoEvents For Each rs In Worksheets rs.Protect Password:="SomePassword" Next 
  2. 保護工作簿時,將UserInterfaceOnly參數設置為true。 就像是:

     rs.Protect Password:="SomePassword", UserInterfaceOnly:=True 

我在以下子代碼中得到了相同的錯誤消息,我注意到該錯誤消息引用了包含數據透視表的工作表:

Private Sub Refresh()
Dim wks As Worksheet
For Each wks In ThisWorkbook.Worksheets
    wks.Unprotect
Next wks
ThisWorkbook.RefreshAll: DoEvents
For Each wks In ThisWorkbook.Worksheets
    wks.Protect UserInterfaceOnly:=True
Next wks
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM