1

VBA 経由で PDF にエクスポートすると、スパークライン グラフが印刷されないという問題があります。私はあなたのサイトや他のいくつかのサイトを閲覧し、解決策を見つけようとしました. 残念ながら、私はそれを機能させることができません。

アプリケーションを使用するのは私だけなので、プロセスが完全に表示されます。スパークラインを「更新」するために、エクスポート行の前に次のすべてを実行しようとしました。

  1. application.screenupdating = false の場合、application.screenupdating = true

  2. application.visible = true (非表示になったことはありませんが、ここのフォーラムに基づいています)

  3. スパークラインが配置されているセルを選択します

  4. スパークラインが配置されているシート全体を選択

  5. select.copy スパークラインが配置されているセル

  6. application.wait が更新されるかどうかを確認する

  7. application.calculate して、更新されるかどうかを確認します

他に試してみることは本当に思いつきません。スプレッドシートは、1 つのエンティティのレポートを作成し、レポートを印刷してから、別のエンティティの次のレポートの作成に進むように設計されています (Access からデータを取得し、200 を超える 10 ページのレポートを作成します)。

どんな助けでも大歓迎です。

ありがとう - クリス。

4

2 に答える 2

2

私は同じ問題を抱えていて、リストされているすべてのアイデアをDoEvents試しましたが、コード行の行をテストした後、問題のあるコードは次のとおりでした。

.Axes.Vertical.MinScaleType = xlSparkScaleGroup

何らかの理由xlSparkScaleGroupで、ページのスパークラインの更新が妨げられ、update-print-update-print ---シートを更新しようとすると、スパークラインが欠落していました。私の解決策は、このコードを削除してから、手動でスケールを設定することでした。このようなもの:

.Axes.Vertical.MinScaleType = xlSparkScaleCustom

.Axes.Vertical.CustomMinScaleValue = Application.WorksheetFunction.Min(Range(SLAddress))

.Axes.Vertical.MaxScaleType = xlSparkScaleCustom

.Axes.Vertical.CustomMaxScaleValue = Application.WorksheetFunction.Max(Range(SLAddress))

SLAddress私が使用していたスパークラインデータのアドレスはどこでしたか。これが問題の解決に役立つことを願っています。おそらくMicrosoftが実際にこの問題を修正するでしょう。

于 2012-11-21T18:17:20.330 に答える
1

それを実現するために一時ファイルを使用する必要がありました。基本的に、「savecopyas」を使用して現在のファイルを一時ファイルとして保存し、一時ファイルを開いて(スパークラインを更新できるようにしました)、印刷を行い、一時ファイルを閉じてから、プロセスを最初からやり直します。

彼らがいつかこれを修正することを願っています。

クリス。

于 2011-07-28T15:10:53.193 に答える