2016-05-11 19 views
2

Excel 2013では、ピボットテーブルをリフレッシュするVBA構文は何ですか?私は以下の両方のオプションを試してみましたが、いずれもピボットテーブルを更新しませんでした。それに追加するピボットテーブルをリフレッシュする

'Does Not Work 
Sheets("Sheet1").Select 
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh 
'Does Not Work 
For Each Sheet In ThisWorkbook.Worksheets 
    For Each Pivot In Sheet.PivotTables 
     Pivot.RefreshTable 
     Pivot.Update 
    Next 
Next 

EDIT
---私は実際には、ピボットテーブルを更新THEN埋め込まれたMySQLのクエリの第一をリフレッシュする必要がしています。これで

+0

は、あなたがそれを使用する構文ものを見るために、マクロレコーダーを使用してみました -

もこの答えを参照してください? 'activeworkbook.refreshall'はそれらのループを置き換えてください。 – gtwebb

+0

どのバージョンのExcelですか?マクロレコーダーを使用すると、ActiveSheet.PivotTables( "PivotTable1")。PivotCache.Refresh –

+0

ピボットテーブルソースとは何ですか?ソースはリフレッシュされていますか? –

答えて

0

私の問題は、それを更新する前に、関連する接続にFalseBackgroundQueryを設定することで解決した。

With ThisWorkbook.Connections(1).OLEDBConnection 
    .BackgroundQuery = False 
    .Refresh 
End With 
Pivot.RefreshTable 

(適切な接続オブジェクトでOLEDBConnectionを置き換える)

BackgroundQueryとに設定されていること表示されますTrue、コードが終了するまでデータの取得が完了しません。あなたは行って、これを見ることができます。このループは終了したことがない

With ThisWorkbook.Connections(1).OLEDBConnection 
    .BackgroundQuery = True 
    .Refresh 
    Do While .Refreshing 
     DoEvents 
    Loop 
End With 

、およびExcelのショーのステータスバー「背景クエリを実行する(キャンセルするにはここをクリック)」。クリックすると「すべての行がフェッチされました」というダイアログが表示されますが、クエリはまだ実行中です。 https://stackoverflow.com/a/25054870/3590073

関連する問題