2016-06-20 3 views
0

ファイルを開くときにピボット・チャートがリフレッシュされないという問題があります。 「データ」と呼ばれる保護されたワークシートと、「要約」と呼ばれる別のワークシートのピボット・テーブル/チャートにWebクエリー・セットアップがあります。ワークブック(複数の保護されたワークシート)を開くと、ピボット・チャートがリフレッシュされない

「PW」と呼ばれる別のシートがあります。パスワードが保存されている(非表示になっている)ので、誰もパスワードを盗むことができません。すべてのワークシートは同じパスワードで保護されています。

私は両方のワークシートのロックを解除するために自分のコードを調整する必要があると信じていますが...よく分かりません!

これは、私が問題を起こすことなくWebクエリをリフレッシュするコードです。誰かが私は両方のシートのロックを解除するためにそれを調整する手助けができれば、すべてを更新し、それをはるかに高く評価されると思い:)

私はエクセル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 

EDIT:

両方のワークシートの保護を解除し、 '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ダグのお手伝いをありがとう。上記の私の編集を参照してください - もしあなたが何らかの方法で助けることができれば、それは感謝します。再度ありがとう:) – ERZUT

+0

あなたはどんなエラーを出していますか? –

答えて

0

私はピボットテーブルについて知らないが、あなたはおそらく、変更を確認するためにあなたのサブの終わりに Application.ScreenUpdating = Trueの

が必要になります。

関連する問題