2016-06-20 108 views
0

在打開我的文件時數據透視表不刷新時出現問題。我在名爲'DATA'的受保護工作表上有一個Web查詢設置,在另一個名爲'Summary'的工作表上有一個數據透視表/圖表。開啓工作簿時不會刷新數據透視表(多重保護工作表)

我還有另一張名爲'PW'的表,我有密碼來解鎖存儲的工作表(隱藏),因此如果他們查看代碼,沒有人可以拿起我的密碼。所有工作表都使用相同的密碼進行保護。

我相信我需要調整我的代碼來解鎖這兩個工作表,但是......我無法弄清楚它!

這是我沒有任何問題刷新網絡查詢的代碼。如果有人可以幫助我調整它解開兩個片,刷新所有然後保護工作表都這將會是非常讚賞:)

我用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查詢,然後刷新'Summary'工作表上的數據透視表,然後再次保護兩張表。它返回一個錯誤,雖然...任何想法?對不起這個新...

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

可能是數據透視表/圖表在表/查詢之前刷新。一般來說,我建議按照正確的順序顯式刷新它們,對錶格設置「BackgroundQuery」爲false。 –

+0

@DougGlancy感謝您的幫助Doug。請參閱我上面的編輯 - 如果你能以任何方式提供幫助,我將不勝感激。再次感謝:) – ERZUT

+0

你得到什麼錯誤,並在哪裏? –

回答

0

我不知道數據透視表,但你可能會需要 Application.ScreenUpdating =真

在你的子結束時看到的變化。

相關問題