現在、いくつかのコードを最適化しようとしています。現在、私はActiveWorkbook.RefreshAll
を使用して実行時間全体を大幅に遅くしています。実際には、ワークブック内の2つのワークシートをリフレッシュするだけです。 Worksheet("Name").RefreshAll
のような機能はありますか?私は.calculateを認識していますが、ピボットテーブルと指定されたシートの計算を更新するとは思われません。ワークシート( "名前")。リフレッシュ?
よろしく
現在、いくつかのコードを最適化しようとしています。現在、私はActiveWorkbook.RefreshAll
を使用して実行時間全体を大幅に遅くしています。実際には、ワークブック内の2つのワークシートをリフレッシュするだけです。 Worksheet("Name").RefreshAll
のような機能はありますか?私は.calculateを認識していますが、ピボットテーブルと指定されたシートの計算を更新するとは思われません。ワークシート( "名前")。リフレッシュ?
よろしく
ワークブックを通して、それらの特定のシートになぜループ、計算とピボットテーブルを更新しますか?テーブルが同じシート上にない場合は、コードを微調整してピボットテーブルをループし、「各シート」ループの代わりにその方法をリフレッシュすることができます。
複製可能なSub t()
Dim ws As Worksheet
Dim pvt As PivotTable
For Each ws In ActiveWorkbook.Worksheets
If ws.Name = "Sheet4" Or ws.Name = "Sheet2" Then
ws.Calculate
For Each pvt In ws.PivotTables
pvt.RefreshTable
Next pvt
End If
Next ws
End Sub
確かにより効率的なルートですバットマンありがとう! –
[ここ](https://stackoverflow.com/questions/154434/how-do-you-get-excel-to-refresh-data-on-sheet-from-within-vba) 。 –