0

これらはすべて、Excel 14.0 Interop Services を使用して VB.NET で行われています。

私は途方に暮れています。バッチの実行中に Windows と Excel からプロンプトが表示され続けます。

私が持っているプログラムは、バッチ レコードを含むワークブックを取り込み、各バッチ レコードでシミュレーションを実行し、結果を Excel ファイルに書き戻します。

手順:

  1. ワークブックを開く
  2. ブックが別のプログラムで既に使用されているかどうかを確認します。
    1. 使用中の場合。ワークブックを閉じようとします。次に、再試行する前に一定の時間待機します。
    2. ワークブックが使用されていない場合は続行します。
  3. コンテンツを入手する
  4. レコードを処理中としてマークする
  5. ファイルを保存して閉じます。
  6. レコードを処理します。
  7. 上記と同じプロセスを実行して、ワークブックを開きます。
  8. 結果をワークブックに保存します。
  9. ブックを閉じます。
  10. すべてのレコードがシミュレートされるまで、これらのプロセスをループします。

発生する可能性のある問題: ワークブックが既に使用されているか、2 つのプログラムが同時に保存されたワークブックと対話しようとしています。

私が抱えている問題についてはわかりました。ワークブックが 2 つのプログラムによって同時に操作されている場合。ファイルが現在使用中であることを示すプロンプトが表示されます。

説明できないもう 1 つの問題は、Excel で、読み取り/書き込み、通知、キャンセルのオプションを使用してファイルを変更する準備ができたことを示すプロンプトが表示されることです。

これらのプロンプトをプログラムで処理する方法を見つける必要があります。誰かが私を正しい方向に向けることができれば、私はとてもうれしいです.

4

1 に答える 1

0

次の設定により、プロンプトが表示されないようにすることができます。

Dim xlApp As Excel.Application = New Excel.Application
xlApp.DisplayEvents = False

しかし、実際にプロンプ​​トを「キャッチ」して、何か便利なことをする方法は見つかりませんでした。Interopがファイルを取得できない場合、例外がスローされることがよくあります。例外に実際のエラーを区別する方法が含まれていることはめったにありませんが、その時点で発生する可能性のあることに基づいて解決できる場合があります。

于 2012-11-10T06:36:02.707 に答える