[英]Refresh protected pivot-table with a button?
我有一个用于按钮的宏,用于刷新工作表中的所有数据透视表:
Sub Button3_Click()
ThisWorkbook.RefreshAll
End Sub
我想添加功能以刷新所有数据透视表,即使它们位于受保护的工作表上也是如此。 我使用密码MyPwd保护了数据透视表,并使用了以下代码,但无法正常工作:
Sub Button3_Click()
Unprotect Password:="MyPwd"
ThisWorkbook.RefreshAll
Protect Password:="MyPwd", _
DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowUsingPivotTables:=True
End With
End Sub
Visual Basic对我来说是全新的。 我究竟做错了什么?
所需的Unprotect
是工作表方法。 您应该合格。
Sub ProtRef()
Dim TargetSht As Worksheet
Set TargetSht = ThisWorkbook.Sheets("Sheet1") 'Modify as needed.
With TargetSht
.Unprotect MyPwd
ThisWorkbook.RefreshAll
.Protect MyPwd
End With
End Sub
注意TargetSht
和With-End With
。 让我们知道是否有帮助。
编辑:
Sub ProtRef()
Dim WB As Workbook, WS As Worksheet
For Each WS In WB.Worksheets
If WS.Name <> "Sheet1" Then
WS.Unprotect MyPwd
End If
End With
ThisWorkbook.RefreshAll
For Each WS In WB.Worksheets
If WS.Name <> "Sheet1" Then
WS.Protect MyPwd
End If
End With
End Sub
粘贴到常规模块中,如下所示:
让我们知道是否有帮助。
谢谢@ BK201的破解,您的确向我指出了正确的方向。 我在按钮中使用了这段代码,它似乎可以解决问题:
Sub Button1_Click()
Dim Sht As Worksheet
For Each Sht In ThisWorkbook.Worksheets
Sht.Unprotect Password:="MyPwd"
ThisWorkbook.RefreshAll
Next
For Each Sht In ThisWorkbook.Worksheets
Sht.Protect Password:="MyPwd"
Next
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.