Excel 在受保护的工作表上刷新数据透视-即使在VBA中取消保护也会出错
我有一个数据透视表,在工作表激活时自动刷新,数据来自另一个受保护的选项卡。即使我在刷新之前取消了对选项卡的保护,我仍然会得到:Excel 在受保护的工作表上刷新数据透视-即使在VBA中取消保护也会出错,excel,vba,pivot-table,Excel,Vba,Pivot Table,我有一个数据透视表,在工作表激活时自动刷新,数据来自另一个受保护的选项卡。即使我在刷新之前取消了对选项卡的保护,我仍然会得到: Run-time error '1004': Cannot edit PivotTable on protected sheet. 我的VBA: Private Sub Worksheet_Activate() Sheets("Extract").Unprotect "password" ActiveSheet.PivotTables("pvt_Activ
Run-time error '1004':
Cannot edit PivotTable on protected sheet.
我的VBA:
Private Sub Worksheet_Activate()
Sheets("Extract").Unprotect "password"
ActiveSheet.PivotTables("pvt_Activity").PivotCache.Refresh
Sheets("Extract").Protect Password:="password", Contents:=True, Scenarios:=True
End Sub
我的头撞在墙上-为什么这不起作用
干杯由于数据透视表位于受保护的工作表中,因此会出现此错误,因此需要在刷新前取消对其的保护 因此,在每个工作表中都有一个刷新按钮,并在下面指定此宏 g_sPassword->是取消对工作表保护的密码,我已将其声明为变量,因此我直接使用它 子刷新配置文件表() 端接头 子刷新第二页() 端接头 子数据透视表(sht作为工作表)
End Sub从字面上看,错误消息表明是另一个(活动)工作表受到保护。您也尝试过取消保护吗?我无法根据您提供的内容重新编程(假设活动工作表未受保护)。活动工作表未受保护。奇怪的是,如果我突然更改了数据源(通过添加1行或删除1行),它就会正常工作。只有当我保存并重新打开文件时,我才再次收到错误。仍然没有重新启动。我甚至不需要解除保护。你能详细解释一下你的设置吗?2页-1页,工作人员将定制系统中的数据转储放入其中。有已定义的标头和要运行的宏,以确保数据有效。验证后,它们将移动到第二张工作表,即数据透视表(这是一个带有偏移量的命名范围,因为数据可能会根据周的不同而增长/收缩)。如果我将偏移量更改为负一行,轴将刷新。一旦我保存并重新打开文件,就会出现此错误。
Call RefreshPivotTables(sheetname1)
Call RefreshPivotTables(sheetname2)
Dim pt As pivotTable
sheetname1.Unprotect g_sPassword
sheetname2.Unprotect g_sPassword
For Each pt In sht.PivotTables
pt.PivotCache.Refresh
Exit For
Next pt
sheetname1.Protect g_sPassword
sheetname2.Protect g_sPassword
MsgBox "Pivot Table Updated"