3

Excel でいくつかのプロセスを自動化する VBA コードを書いていますが、ドキュメントやヘルプを見つけることができない非常に奇妙な動作に遭遇しています。

MAJ_GF最初に function を実行しGF.Update、結果をチェックしてからプロシージャを起動するプロシージャがありますGF.Build(基本的にGF.Update、異なるワークシートから取得したデータを取得し、それを使用して一連の処理を行います)。

ある時点で、この「たくさんのもの」にはピボット テーブルを使用する必要があるためGF.Build、次の行が含まれます。

Set pvt = ThisWorkbook.PivotCaches.Create(xlDatabase, _
   "'source_GF'!R1C1:R" & j & "C" & k).CreatePivotTable("'TCD_GF'!R4C1", "GFTCD1")

奇妙な動作は次のとおりです。

  • を実行するMAJ_GFと、VBA が適切に実行されてGF.Updateから起動GF.Buildし、上記の行で停止して「引数またはプロシージャの呼び出しが正しくありません」と不平を言います
  • 手動で実行してGF.Updateから手動で実行するGF.Buildと、すべてがスムーズに進み、GF.Build最初から最後までエラーなしで実行する必要があります
  • さらに奇妙なことに、問題のある行にブレークポイントを設定して実行するMAJ_GFと、VBA は期待どおりにその行で一時停止し、「続行」と言うと ... スムーズに続行し、エラーは発生しません。

私はこれを何度も繰り返し、すべての変数の値を再確認しましたが、これはまったく意味がありません。

アイデアはありますか?

4

1 に答える 1

4

私の頭に浮かぶアイデアはほとんどありません:

  1. バックグラウンドでまだいくつかの更新が進行中です。あなたが言及した行の前に試してみてDoEventsくださいApplication.Wait
  2. また、バックグラウンドで更新できるデータ接続があるかどうかを確認します。更新できる場合は、バックグラウンド更新を無効にします。
  3. ごくまれに (通常は古いバージョンで、チャートが関係している場合)、Excel ウィンドウを再表示します (使用Application.Visible = Falseして有効にした場合にScreenUpdating役立ちました..
  4. 「エキゾチックな」参照/アドインを使用していますか? それらを無効にして、問題が解決しないかどうかを確認してください。
  5. マシンを再起動してみてください

私が楽観的すぎてあなたの問題を解決できないというわけではありませんが、試してみてください! 頑張ってください!

于 2013-02-18T19:40:02.227 に答える