宏不能正确保护我的 ws
Macro doesn't protect back my ws properly
我的宏有一个小问题,假设取消保护我的工作表,刷新 Pivot Table 并再次保护 ws(有条件)。它只能部分正常工作,因为它确实取消了对 ws 的保护,它刷新了 Pivot Table,但之后发生了一些奇怪的事情:
- 它并没有真正恢复行和列的格式
- 它不能正确保护 ws(我的 ws 看起来像是在您单击“工具”、“保护”时受到保护 - 但是,您可以取消保护而无需再次输入密码??!!
Sub RefreshPivotTables()
' will remove password and refresh PT
Dim xpt As PivotTable
With ActiveSheet
.Unprotect Password:="milessss"
For Each xpt In Worksheets("WT-1").PivotTables
xpt.RefreshTable
Next xpt
.Protect Password:="milessss", AllowFormattingCells:=True, _
AllowFormattingRows:=True, AllowFormattingColumns:=True, _
AllowUsingPivotTables:=True, EnableOutlining:=True
End With
End Sub
有人可以帮忙吗?
干杯 - Mile`S
简单的拼写错误:
.Protect AllowFormattingRows:=True
.Protect AllowFormattingColumns:=True
Rows
而不是 Raws
和 Columns
而不是 Column
来源:Protection.AllowFormattingRows Property (Excel)
拼写错误已更正,但要实现您的目标,您需要使用此代码:
Private Sub RefreshPivotTables()
' will remove password and refresh PT
Dim xpt As pivotTable
With ActiveSheet
.Unprotect Password:="milessss"
For Each xpt In .PivotTables
xpt.RefreshTable
Next xpt
.Protect Password:="milessss", AllowFormattingCells:=True,AllowFormattingRows:=True, AllowFormattingColumns:=True, AllowUsingPivotTables:=True
End With
End Sub
事实上,您多次使用不同选项的保护功能。因此,每次使用它时,您都会删除使用过的旧选项。因此在宏的末尾,唯一可用的 属性 是 AllowUsingPivotTables
但没有设置密码。所以你需要在一个表达式中设置所有参数。
我的宏有一个小问题,假设取消保护我的工作表,刷新 Pivot Table 并再次保护 ws(有条件)。它只能部分正常工作,因为它确实取消了对 ws 的保护,它刷新了 Pivot Table,但之后发生了一些奇怪的事情: - 它并没有真正恢复行和列的格式 - 它不能正确保护 ws(我的 ws 看起来像是在您单击“工具”、“保护”时受到保护 - 但是,您可以取消保护而无需再次输入密码??!!
Sub RefreshPivotTables()
' will remove password and refresh PT
Dim xpt As PivotTable
With ActiveSheet
.Unprotect Password:="milessss"
For Each xpt In Worksheets("WT-1").PivotTables
xpt.RefreshTable
Next xpt
.Protect Password:="milessss", AllowFormattingCells:=True, _
AllowFormattingRows:=True, AllowFormattingColumns:=True, _
AllowUsingPivotTables:=True, EnableOutlining:=True
End With
End Sub
有人可以帮忙吗? 干杯 - Mile`S
简单的拼写错误:
.Protect AllowFormattingRows:=True
.Protect AllowFormattingColumns:=True
Rows
而不是 Raws
和 Columns
而不是 Column
来源:Protection.AllowFormattingRows Property (Excel)
拼写错误已更正,但要实现您的目标,您需要使用此代码:
Private Sub RefreshPivotTables()
' will remove password and refresh PT
Dim xpt As pivotTable
With ActiveSheet
.Unprotect Password:="milessss"
For Each xpt In .PivotTables
xpt.RefreshTable
Next xpt
.Protect Password:="milessss", AllowFormattingCells:=True,AllowFormattingRows:=True, AllowFormattingColumns:=True, AllowUsingPivotTables:=True
End With
End Sub
事实上,您多次使用不同选项的保护功能。因此,每次使用它时,您都会删除使用过的旧选项。因此在宏的末尾,唯一可用的 属性 是 AllowUsingPivotTables
但没有设置密码。所以你需要在一个表达式中设置所有参数。