3

情况:

  1. 打开工作簿 A。
  2. A 中的代码打开工作簿 B。

    • B 现在是活动的 WB。
    • B中的代码以ThisWorkBook.Close
  3. B 关闭,所以 A 出现。

问题是:在 WB B 关闭后,我无法让ActivateWB A 中的任何事件自动触发。

但是,如果我手动关闭 WB B,使用鼠标“x”出 WB,或通过菜单,则 WB A 会触发Activate事件。

不知何故,使用 VBA 关闭 WB B 会阻止触发 WB A Activate 事件。

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 关闭时激活您的主表(您可能需要添加一个检查 A.xlsm 是否打开,如果没有打开它或退出子)

于 2012-11-16T17:23:07.230 回答