在 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
产生以下错误:
The cell or chart you are trying to change is protected and therefore read-only.
我尝试了许多方法来延迟宏的继续,直到刷新完成,但没有任何效果。我查看了这个论坛上的方法,但没有发现任何工作。什么会起作用?
最佳答案
尝试以下方法之一:
DoEvents
在 ActiveWorkbook.RefreshAll
之后.像这样: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
UserInterfaceOnly
保护工作簿时参数为 true。就像是:rs.Protect Password:="SomePassword", UserInterfaceOnly:=True
关于Excel宏数据刷新与保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28686573/