0

2003 年にワークブックは閉鎖されました。しかし今、同じコードがワークブックを再度開いています。その後、いくつかのセリフがあり、サブが終了します。サブルーチンが終了すると、workbook_openワークブックを開くコードがなくても、閉じたワークブックに対してイベントが発生します。デバッガーはほとんど役に立ちません。すべてを段階的に実行するとバグが再現されません。実際、デバッガーを使用するとすべて正常に動作します。

私が使う

ActiveWorkbook.Close False

(アドインから) ブックを閉じるため。

大変助かります。

4

2 に答える 2

0

煩わしいリボンと Microsoft がカスタム メニューを削除したため、Excel 2007 用のコードを少し追加しました。これをいくらか補うために、便利なようにリボンのアドイン タブを常に表示できるようにしたかったのですが、そのために Application.OnTime と sendkeys を使用していました (Microsoft は愚かなリボンに API を含めようとしなかったためです。 ..)。どうやらOnTimeが私の悩みの根源だったようです。

于 2012-04-23T21:47:07.787 に答える
0

両方を取得する方法を考え出しました。Workbook_beforeclose は、次を呼び出してスケジュールされた ontime イベントをキャンセルします。

Application.OnTime EarliestTime:=Now(), Procedure:="Name", Schedule:=False

それ以外の場合は、ontime イベントが実行されます。

beforeclose が呼び出される前にイベントがキャンセルされない場合、ワークブックは閉じられ、スケジュールされた ontime イベントを実行するために再度開かれます (ワークブックが短時間開かれるため、閉じる必要がある前に ontime を実行する機会がないためです)。 )。

于 2012-04-23T22:31:31.450 に答える