VBA阻止数据透视表创建

时间:2016-08-01 07:51:27

标签: vba excel-vba excel

有没有办法编写一个能够禁用在工作簿中插入数据透视表的功能的子程序?

3 个答案:

答案 0 :(得分:1)

这有点像黑客 - 但你可以使用以下逻辑在创建后删除

  1. 陷阱Workbook_SheetChange事件并测试Target范围是否有PivotTable属性
  2. 如果是,请获取PivotTable的{​​{1}}并删除TableRange2
  3. Range个事件代码(在Workbook_SheetChange中):

    ThisWorkbook

    删除包含数据透视的范围的代码(在Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) On Error Resume Next If Not Target.PivotTable Is Nothing Then RemovePivotFromRange Target End If End Sub 中):

    Module

答案 1 :(得分:0)

如果删除Excel上的数据透视表插入符合您的目的,请尝试

文件菜单>选项>自定义Rebbions>展开“插入”(右侧)>选择“表格”,然后单击“删除”按钮。

请注意,这将删除表格插入选项:(

答案 2 :(得分:0)

如果不启用“使用数据透视表报告”选项,则可以protect the worksheets。这将禁用与Pivot相关的功能区按钮。

如果您更喜欢VBA,以下代码应该可以解决问题。

Private Sub Workbook_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable)
    If Target.VisibleFields.Count = 0 Then
        Debug.Print "Blocked creation of Pivot " & Target.Name & " on sheet " & Sh.Name
        Target.TableRange2.Clear
    End If
End Sub