背景:自動更新Excel 2007のピボットテーブルSQL ServerのDBから更新別々のシート内のデータの後に
私はExcelで3枚を持っています。
- SQLサーバDBからデータをプルデータシート
- 以下#2からデータをプルし、ピボットテーブルとサマリーシート。
- データと理想的にはピボットテーブルの両方をリフレッシュするためのボタンがあるシートです(カテゴリタイプとドル値を引き出します)。
問題:私はボタンをクリックすると 、データシートを正しく更新しますが、ピボットテーブルにはありません。このブックは自動的に午前5時に実行され、その結果がPDFとして人々に送信されるので、PDFが生成、送信、およびブックが閉じられる前に、ピボットテーブルを更新する方法を見つけなければなりません。 まず、ボタンがクリックされたときに、それが実行されます:
ActiveWorkbook.RefreshAll
Application.CalculateFull
それだけではないピボット、正しくデータシートを更新しないし、私が試してみました何
。
私が試した:私は二回これらのコマンドの両方を実行しようとしている
Sheets("Summary").PivotTables("PivotTable6").PivotCache.Refresh
Sheets("Summary").PivotTables("PivotTable6").RefreshTable
- :
- は上記と無駄に両方の後に2つのコマンドの次のコマンドを追加します(背中合わせに)このように:
ActiveWorkbook.RefreshAll Application.CalculateFull ActiveWorkbook.RefreshAll Application.CalculateFull
最初の実行でデータを取得し、2回目にピボットリフレッシュが成功することを期待しています。うまくいきませんでした。
ThisWorkbook.Saved = True
Workbooks(1).Activate
ActiveWorkbook.RefreshAll
Application.CalculateFull
ワークブックを実行した後(ピボットがリフレッシュしていないので、私はこれを試した理由は次のとおりです。私は私を閉じて再び開いたブックをして、リフレッシュをreran考えにExcelを騙ししようとしてい
- )私は保存して閉じます。私は再び開きます(ピボットはまだ間違っています、データは正しいです)、私は再実行しました(データはまったく同じです)。そしてピボットは正しいです。だから私はこれをシミュレートすることを望んでいた。
この時点では、他のことは考えられません。 Excelがこれを行うことができないと私は考えています。もう一つ。もともと私たちは、SQL ServerのDBからのピボットテーブルに直接来るデータを持っていましたが、我々は異なるアプローチを取るつもりだったので、我々は継続的にこれらのエラーを得た:削除
- パート:
/xl/pivotTables/pivotTable1.xml
一部。 (ピボットテーブルビュー) - 削除された部分:
/xl/pivotTables/pivotTable5.xml
部分。(ピボットテーブルビュー) - 削除レコード:
/xl/workbook.xml
一部(ブック)
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"> <logFileName>error014800_01.xml</logFileName> <summary>Errors were detected in file 'T:\Reports\RP\Archive\Historical Excel\01-11\RP_01-07-11.xlsm'</summary> <removedParts summary="Following is a list of removed parts:"> <removedPart>Removed Part: /xl/pivotTables/pivotTable1.xml part. (PivotTable view)</removedPart> <removedPart>Removed Part: /xl/pivotTables/pivotTable5.xml part. (PivotTable view)</removedPart> </removedParts> <removedRecords summary="Following is a list of removed records:"> <removedRecord>Removed Records: Workbook properties from /xl/workbook.xml part (Workbook)</removedRecord> </removedRecords> </recoveryLog>
からワークブックのプロパティは、任意の助けを大幅に高く評価されています。
- パート:
修正があるかどうかは興味深いでしょうが、なぜピボットテーブルが壊れていたのか分かりました。私はクエリから日付フィールドを削除し、私のピボットテーブルの破壊を停止しました。基本的には試行錯誤してすべてのフィールドを削除し、壊れるまで追加し直してください。この1つのフィールドについて何が奇妙であったかはわかりません。 – Mark