【问题标题】:Refresh protected pivot-table with a button?使用按钮刷新受保护的数据透视表?
【发布时间】:2016-01-27 03:31:41
【问题描述】:

我有一个用于刷新工作表中所有数据透视表的按钮的宏:

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 对我来说是全新的。我做错了什么?

【问题讨论】:

    标签: vba excel pivot-table


    【解决方案1】:

    你想要的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
    

    注意TargetShtWith-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
    

    粘贴到常规模块中,如下所示:

    如果这有帮助,请告诉我们。

    【讨论】:

    • 我有多个带有数据透视表的工作表,并且按钮位于没有数据透视表的不同工作表上。我是否右键单击其中一张数据透视表,选择查看代码,然后输入此代码?还是我用按钮将它放在工作表中?非常感谢您的帮助
    • 未受保护的工作表(没有数据透视表和按钮的工作表)的名称是什么?
    • sheet1 和数据透视表在 sheet3,sheet4,sheet5
    • 见我上面的编辑。如果您不希望 Sheet2 也受到保护,请执行以下操作:If WS.Name &lt;&gt; "Sheet1" And WS.Name &lt;&gt; "Sheet2" Then。 :)
    • 我仍然无法让它工作。这是我所拥有的三张图片link
    【解决方案2】:

    感谢@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
    

    【讨论】:

      猜你喜欢
      • 2016-11-30
      • 2019-05-14
      • 2015-06-24
      • 2018-03-11
      • 1970-01-01
      • 2016-09-07
      • 2010-11-03
      • 2021-04-12
      相关资源
      最近更新 更多