打开工作簿(多个受保护的工作表)

时间:2016-06-20 23:42:16

标签: excel vba excel-vba macros

在打开我的文件时出现枢轴图没有刷新的问题。我在名为“DATA”的受保护工作表上设置了Web查询,在另一个名为“Summary”的工作表上设置了数据透视表/图表。

我还有一张名为'PW'的表格,我有密码来解锁存储的工作表(隐藏),所以如果他们查看代码,没有人可以拿起我的密码。所有工作表都使用相同的密码进行保护。

我相信我需要调整我的代码以解锁两个工作表但是......我无法理解它!

这是我的代码,它可以刷新Web查询而不会出现任何问题。如果有人可以帮我调整它以解锁两张纸,刷新所有然后保护两张工作表,我们将不胜感激:)

我正在使用Excel 2016。

Private Sub Workbook_Open()


Application.ScreenUpdating = False
Sheets("DATA").Unprotect Password:=Sheets("PW").Range("K2").Value
Workbooks(ThisWorkbook.Name).RefreshAll
Sheets("DATA").Protect _
Password:=Sheets("PW").Range("K2").Value, _
UserInterfaceOnly:=True, _
AllowFiltering:=True, _
AllowSorting:=True, _
AllowUsingPivotTables:=True

End Sub

编辑:

我已尝试使用以下代码取消保护两个工作表,刷新“DATA”工作表上的Web查询,然后刷新“摘要”工作表上的数据透视表,然后再次保护两个工作表。它虽然回复了一个错误......有什么想法吗?对不起,对此我不熟悉......

Private Sub Workbook_Open()

Dim ws As Worksheet
Set sheetsArray = ActiveWorkbook.Sheets(Array("DATA", "Summary"))

Application.ScreenUpdating = False
For Each ws In sheetsArray
ws.Unprotect Password:=Sheets("PW").Range("K2").Value
Next
ActiveWorkbook.Connections("Connection").Refresh
Sheets("Summary").PivotTables("PivotTable2").PivotCache.Refresh
For Each ws In sheetsArray
ws.Protect Password:=Sheets("PW").Range("K2").Value, _
Next
UserInterfaceOnly:=True, _
AllowFiltering:=True, _
AllowSorting:=True, _
AllowUsingPivotTables:=True

End Sub

1 个答案:

答案 0 :(得分:0)

我不知道数据透视表,但您可能需要 Application.ScreenUpdating = True

在你的潜艇末尾看到变化。