私は20種類のピボットテーブルを持つワークブックを持っています。すべてのピボットテーブルを見つけてVBAで更新する簡単な方法はありますか?エクセルブック内のピボットテーブルをすべてマクロでリフレッシュするにはどうすればよいですか?
答えて
はい。
ThisWorkbook.RefreshAll
それとも、あなたのExcelのバージョンが古すぎる場合、
Dim Sheet as WorkSheet, Pivot as PivotTable
For Each Sheet in ThisWorkbook.WorkSheets
For Each Pivot in Sheet.PivotTables
Pivot.RefreshTable
Pivot.Update
Next
Next
あなたはVB ワークシートオブジェクト上ピボットテーブルコレクションを持っています。したがって、このような迅速なループが動作します:トレンチから
Sub RefreshPivotTables()
Dim pivotTable As PivotTable
For Each pivotTable In ActiveSheet.PivotTables
pivotTable.RefreshTable
Next
End Sub
注:
- をピボットテーブルを更新する前に、任意の保護シートの保護を解除することを忘れないでください。
- 多くの場合、保存はです。私はやがてより、更新を考えます
- ... :)
幸運!
このVBAコードは、ブック内のすべてのピボットテーブル/グラフを最新表示します。
Sub RefreshAllPivotTables()
Dim PT As PivotTable
Dim WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
For Each PT In WS.PivotTables
PT.RefreshTable
Next PT
Next WS
End Sub
別の非プログラムによるオプションは次のとおりです。
- は、右の各ピボットテーブルの上に
- 表の選択オプション
- ティックをクリックしオプション「オープンでリフレッシュ」。
- [OK]ボタンをクリックし
これは、ピボットテーブルに、ブックが開かれるたびに更新されます。
ピボットテーブルツールバーには、すべてをリフレッシュするオプションがあります。それは十分です。他の何かをする必要はありません。ピボットテーブルとそのPivotCacheを区別することがあります特定の状況で
プレスCTRL + ALT + F5
私は同意しません。たとえば、セルが変更されるたびに、Lipisがリフレッシュプロセスを自動化したい場合はどうなりますか? – StockB
。キャッシュには、独自のリフレッシュ方法と独自のコレクションがあります。したがって、ピボットテーブルの代わりにすべてのピボットキャッシュをリフレッシュできました。
違いがありますか?新しいピボットテーブルを作成すると、前のテーブルに基づいて欲しいかどうかを尋ねられます。いいえの場合、このピボットテーブルは独自のキャッシュを取得し、ソースデータのサイズを倍にします。 「はい」と答えた場合は、WorkBookを小さくしますが、1つのキャッシュを共有するピボット・テーブルのコレクションに追加します。コレクション内の単一のピボットテーブルを更新すると、コレクション全体が更新されます。したがって、WorkBook内のすべてのキャッシュをリフレッシュする場合と、WorkBook内のすべてのPivot Tableをリフレッシュする場合との違いを想像することができます。
MS Excel 2003を使用している場合は、表示 - >ツールバー - >ピボットテーブルの順にクリックします。このツールバーから、このシンボル。
私は最近の過去に下記のコマンドを使用していますが、正常に動作しているようです。
ActiveWorkbook.RefreshAll
希望するものがあります。
それは多くのことを助けますが、それは実際に上に書かれているのを見たことがありませんでしたか? 4年前と同じように! (http://stackoverflow.com/a/70976/8418) – Lipis
ActiveWorkbook.RefreshAll
は、ピボットテーブルだけでなくODBCクエリもすべて更新します。コマンドはVBA
から供給された詳細なしにデータ接続を実行するように私はあなただけピボットが
Sub RefreshPivotTables()
Dim pivotTable As PivotTable
For Each pivotTable In ActiveSheet.PivotTables
pivotTable.RefreshTable
Next
End Sub
をリフレッシュしたい場合、私はオプションをお勧めしますデータ接続を参照してください。VBAクエリのカップルを持っていると、このオプションがクラッシュを使用して
最も投票された答えをチェック.. 2番目のアプローチは実際にあなたがここで試したものです..しかし、全体のブーム..アクティブシートの..だけでなくそれは本当に依存していると私はそれ以来触れていない.. – Lipis
コード
Private Sub Worksheet_Activate()
Dim PvtTbl As PivotTable
Cells.EntireColumn.AutoFit
For Each PvtTbl In Worksheets("Sales Details").PivotTables
PvtTbl.RefreshTable
Next
End Sub
が正常に動作します。
コードはアクティブシートモジュールで使用されているため、シートがアクティブになるとフリッカー/グリッチが表示されます。
でも、特定の接続を更新して、それにリンクされているすべてのピボットを更新します。このコードの場合
私は、Excelに存在するテーブルからスライサーを作成しました:
Sub UpdateConnection()
Dim ServerName As String
Dim ServerNameRaw As String
Dim CubeName As String
Dim CubeNameRaw As String
Dim ConnectionString As String
ServerNameRaw = ActiveWorkbook.SlicerCaches("Slicer_ServerName").VisibleSlicerItemsList(1)
ServerName = Replace(Split(ServerNameRaw, "[")(3), "]", "")
CubeNameRaw = ActiveWorkbook.SlicerCaches("Slicer_CubeName").VisibleSlicerItemsList(1)
CubeName = Replace(Split(CubeNameRaw, "[")(3), "]", "")
If CubeName = "All" Or ServerName = "All" Then
MsgBox "Please Select One Cube and Server Name", vbOKOnly, "Slicer Info"
Else
ConnectionString = GetConnectionString(ServerName, CubeName)
UpdateAllQueryTableConnections ConnectionString, CubeName
End If
End Sub
Function GetConnectionString(ServerName As String, CubeName As String)
Dim result As String
result = "OLEDB;Provider=MSOLAP.5;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=" & CubeName & ";Data Source=" & ServerName & ";MDX Compatibility=1;Safety Options=2;MDX Missing Member Mode=Error;Update Isolation Level=2"
'"OLEDB;Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=" & CubeName & ";Data Source=" & ServerName & ";Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False"
GetConnectionString = result
End Function
Function GetConnectionString(ServerName As String, CubeName As String)
Dim result As String
result = "OLEDB;Provider=MSOLAP.5;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=" & CubeName & ";Data Source=" & ServerName & ";MDX Compatibility=1;Safety Options=2;MDX Missing Member Mode=Error;Update Isolation Level=2"
GetConnectionString = result
End Function
Sub UpdateAllQueryTableConnections(ConnectionString As String, CubeName As String)
Dim cn As WorkbookConnection
Dim oledbCn As OLEDBConnection
Dim Count As Integer, i As Integer
Dim DBName As String
DBName = "Initial Catalog=" + CubeName
Count = 0
For Each cn In ThisWorkbook.Connections
If cn.Name = "ThisWorkbookDataModel" Then
Exit For
End If
oTmp = Split(cn.OLEDBConnection.Connection, ";")
For i = 0 To UBound(oTmp) - 1
If InStr(1, oTmp(i), DBName, vbTextCompare) = 1 Then
Set oledbCn = cn.OLEDBConnection
oledbCn.SavePassword = True
oledbCn.Connection = ConnectionString
oledbCn.Refresh
Count = Count + 1
End If
Next
Next
If Count = 0 Then
MsgBox "Nothing to update", vbOKOnly, "Update Connection"
ElseIf Count > 0 Then
MsgBox "Update & Refresh Connection Successfully", vbOKOnly, "Update Connection"
End If
End Sub
- 1. マクロ内で型をインポートするにはどうすればよいですか?
- 2. VBAでピボットテーブルを更新するにはどうすればよいですか?
- 3. SASでピボットテーブルを作成するにはどうすればよいですか?
- 4. すべてのモデルバインディングをリフレッシュするにはどうすればよいですか?
- 5. クライアントでコレクションをリフレッシュするにはどうすればよいですか?
- 6. Outlookでカードをリフレッシュするにはどうすればよいですか?
- 7. jQueryでdiv onclickをリフレッシュするにはどうすればよいですか?
- 8. Clojureでマクロをマップするにはどうすればよいですか?
- 9. プロジェクト内のすべてのヘッダファイルを特定の関数またはマクロですばやく検索するにはどうすればよいですか?
- 10. ピボットテーブル内のセルのフォーマット値を変更するにはどうすればよいですか?
- 11. リクエスト後にフォームをリフレッシュするにはどうすればよいですか?
- 12. tinymce iframeをリフレッシュするにはどうすればよいですか?
- 13. Flash Builder:DataGridデータをリフレッシュするにはどうすればよいですか?
- 14. VB.net:コンボボックスを "リフレッシュ"するにはどうすればよいですか?
- 15. Dokku + Postgres:マテリアライズドビューをリフレッシュするにはどうすればよいですか?
- 16. 親ドキュメントからiframe内のリフレッシュをキャプチャするにはどうすればよいですか?
- 17. PostGISでは、ポリゴン内のすべての点を見つけるにはどうすればよいですか?
- 18. Wordpressでカテゴリ内のすべての投稿を取得するにはどうすればよいですか?
- 19. PHP内でJSONのすべてのキーを取得するにはどうすればよいですか?
- 20. .NETでドメイン内のすべてのユーザーアカウントを検索するにはどうすればよいですか?
- 21. 2Dリスト内のすべてのアイテムがすべて同じであるかどうかを確認するにはどうすればよいですか?
- 22. マクロ内で非公開関数を使用するにはどうすればよいですか?
- 23. Clojureで "defn"マクロを書くにはどうすればよいですか?
- 24. OpenGLテクスチャでデータストリームをリフレッシュするにはどうすればいいですか?
- 25. ディレクトリ内で空のファイルをすべて削除するにはどうすればよいですか?
- 26. rakeタスクでGuardfile内のすべてを実行するにはどうすればよいですか?
- 27. Flash IDE内でフォーマットシンボルとドットをすべてオフにするにはどうすればよいですか?
- 28. starbasicマクロ(openofficeマクロ)の文字列のmd5チェックサムを計算するにはどうすればよいですか?
- 29. Androidでパス内のすべてのポイントを見つけるにはどうすればよいですか?
- 30. リンクリスト内のすべてのノードを「完全に」削除するにはどうすればよいですか?
ああ、downvoteを。 )5年以上経ってから、それは爽やかな変化です;) – GSerg
本当に..それは爽快です。誰かがこの問題をオフトピックとして閉じることさえしようとしています...私はマウスや何か:D – Lipis
素晴らしいですが、私は新しい外部データを取得した後にピボットをリフレッシュしたいので、それを使用しなければならなかったので、ThisWorkbook.RefreshAllは私のために働いていませんでした。 – Yasskier