国と製品でフィルタリングしてから分析する必要がある非常に大きなファイルに、グローバルな売上データがあります。国と製品の組み合わせを変えて同じ分析を何度も行う必要があるため、マクロを使用してこれを実行しようとしています。
マクロの動作は次のとおりです。
- グローバル データを含むソース ファイルを開きます。
- データをフィルタリングします。
- それをコピーして、マクロを格納するワークブックに貼り付けます。
- ワークブックを再計算して更新します。
- ファイルのコピーを別のフォルダーに保存します。
マクロは正常に動作しているように見え、ファイルは保存されていますが、手順 4 と 5 で 2 つの問題が発生しています。
- ピボット テーブルが更新されていないようです。これは、2 番目の問題が原因である可能性があります。
- 保存されたコピーのすべてのピボット テーブルは、引き続き元のファイルを参照します
リンクなしでコピーされたファイルを生成することで両方の問題を修正したいと思いますが、コピーされたファイルをそれ自体に強制的にリンクさせることができる可能性のある応急処置も受け入れています(これは私が行った場合には機能しないようです)手動)。
すべてを見たい場合は完全なコードがありますが、問題はファイルの保存方法にあると思われるため、その部分をここに貼り付けます。マクロの別の部分が必要な場合はお知らせください。事前に感謝します。
保存機能:
Public Sub SaveAsCopy(filePath As String)
Dim updateStatus As Boolean
'Check current status of Alerts
updateStatus = Application.DisplayAlerts
'Turn off alerts
Application.DisplayAlerts = False
ThisWorkbook.Sheets.Copy 'creates new workbook without macros"
'The New workbook copy is now the Active workbook
'Delete Control Sheet
ActiveWorkbook.Sheets(1).Delete
'Save Macro free version and close
ActiveWorkbook.SaveAs Filename:=filePath, FileFormat:=51
ActiveWorkbook.Close
'Revert back to origional alert status
Application.DisplayAlerts = updateStatus
End Sub
関数呼び出し:
Call SaveAsCopy(filePath)