我有一个excel powerpivot表,我已经保护了工作表和单元格。
1)我试图让数据透视表的功能和多个用户展开/折叠字段,而整个工作表是受保护的。
2)**重要提示:**每个用户都有自己独特的过滤视图,我不希望用户1能够取消过滤透视表以查看用户2-10的数据。
现在的保护看起来要么有完整的数据透视表功能,要么没有。我隐藏了数据透视表过滤器下拉菜单,保护了工作表。
**我发现了一个漏洞,“分析-〉清除过滤器”**这将允许用户2-10看到用户1的数据,这是我不想要的。
有人知道如何锁定透视表上的分析功能,但允许透视表扩展/折叠功能吗?
**编辑:**源数据来自Power Query -〉Power Pivot,然后从PowerPivot生成一个pivotTable。
谢谢!
****编辑2:*****我发现了一种方法来保护数据透视表的某些方面(我在同一张表上有两个:我需要一种方法来禁用“清除所有或清除过滤器”现在。
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条答案
按热度按时间cetgtptt1#
您计划使用的方法根本不安全。即使您设法保护了工作表和工作簿,允许用户仅展开/折叠字段。只要
PivotCache
包含整个数据,使用VBA,可以创建New PivotTable
来访问该PivotCache
。我的建议是使用VBA对Source Data
进行切片,并向用户发送只包含他们需要查看的数据的工作簿。