3

状況:

  1. ブック A を開きます。
  2. A のコードはワークブック B を開きます。

    • B が現在アクティブな WB です。
    • B のコードは次で終わりますThisWorkBook.Close
  3. B が閉じるので、A が表示されます。

Activate問題は、WB B が閉じた後に、WB A のイベントを自動的に発生させることができないことです。

しかし、WB B を手動で閉じると、マウスを使用して WB を「x」アウトするか、メニューを介して、WB A がActivateイベントをトリガーします。

どういうわけか、VBA を使用して WB B を閉じると、WB A のアクティブ化イベントがトリガーされなくなります。

Excel 97 と 2003 で同じ結果

何か不足していますか、それとも回避策はありますか??

4

1 に答える 1

-1

ワークブック B を開く前に、ワークブック A を定義済みの名前に設定します。

 Dim wb as workbook

 set wb = activeworkbook

 'run your code


 wb.Activate

編集:

これを子本の各 workbook_close() イベントに入れます。

  windows("A.xlsm").activate

これにより、子 wbs の 1 つが閉じられるたびにマスター シートがアクティブになります (A.xlsm が開いていることを確認し、開いていない場合はサブを終了することをお勧めします)。

于 2012-11-16T17:23:07.230 に答える