如何?:Excel保护数据透视表,但仍具有可扩展功能

时间:2016-09-28 19:36:34

标签: excel pivot-table protection

我有一张excel powerpivot表,我已经保护了表格和单元格。

1)我试图让数据透视表功能正常,多个用户在整个工作表受到保护的情况下展开/折叠字段。

2)重要事项:每个用户都有自己独特的过滤视图,我不希望用户1能够取消过滤透视表以查看用户2-10数据。

现在,保护看起来要么具有FULL Pivot表功能,要么没有。我隐藏了数据透视表过滤器下拉并保护了工作表。

我发现了一个漏洞,“分析 - >清除过滤器”这将允许用户2-10查看用户1数据,这是我不想要的。

有没有人知道如何在数据透视表上锁定分析功能,但是允许数据透视表扩展/折叠功能?

编辑:源数据来自Power Query - > Power Pivot,然后从PowerPivot生成pivotTable。

谢谢!

****编辑2:*****我找到了一种方法来保护数据透视表的某些方面(我在同一张表上有两个: 我现在需要一种方法来禁用“CLEAR ALL或CLEAR FILTERS”。

Sub LockPivotTable()
'pivot table lock
Dim pt As PivotTable
Dim pf As PivotField

On Error Resume Next

For Each pt In ActiveSheet.PivotTables
With pt
  .EnableDrilldown = True
  .EnableFieldList = False
  .EnableFieldDialog = False

  .PivotCache.EnableRefresh = True
  For Each pf In pt.PivotFields
    With pf
      .DragToPage = True
      .DragToRow = True
      .DragToColumn = True
      .DragToData = True
      .DragToHide = True
    End With
  Next pf

End With
Next pt
End Sub

1 个答案:

答案 0 :(得分:0)

您计划使用的方法根本不安全。即使您设法保护工作表和工作簿,也允许用户仅扩展/折叠字段。只要PivotCache包含整个数据,使用VBA,就可以创建New PivotTable来访问PivotCache。我的建议是使用VBA对Source Data进行切片,并将工作簿发送给仅包含他们需要查看的数据的用户。