【发布时间】:2016-11-02 18:56:57
【问题描述】:
我有一个由子文档组成的 word 文档(word 2013)。
要生成最终文档,我必须:
- 查看->大纲
然后,点击“展开子文档”并通过“关闭大纲视图”按钮关闭大纲视图。
我正在尝试编写一个自动执行此操作的宏(首先使用宏记录器来查找正确的命令)。 但我没有相当于“关闭大纲视图”。
ActiveWindow.ActivePane.View.Type = wdOutlineView
ActiveDocument.Subdocuments.Expanded = True
然后我添加了以下语句,希望它会关闭大纲视图,但不是:
ActiveWindow.ActivePane.View.Type = wdNormalView
使用bmgh1985 提供的提示,我将最后一条语句修改为:
ActiveWindow.ActivePane.View.Type = 3
但是 Word 挂了:Subdocument 的扩展是异步处理(由 Expanded 属性的修改触发),word 正在扩展 Subdocument,而视图恢复正常。
有没有办法等待Subdocument的扩展结束? (我尝试过使用计时器和大循环,但没办法……)
【问题讨论】:
-
您是否尝试过创建一个变量来获取
ActiveWindow.ActivePane.View.Type的初始状态,然后在完成后将其设置回保存的变量? -
我记得,子文档的 Locked 属性只有在扩展时才为 False?您是否尝试过循环检查该更改?
-
我做了几个实验,但仍然没有好的结果:要扩展子文档,我必须将 Expanded 属性设置为 True。但是我不知道如何等待所有子文件的扩展完成,然后再移动到下一个 vba 语句。我试图实现一个计时器 - Application.Wait (Now + TimeValue("0:00:20")) - 但它似乎只对 Excel vba 有效。