VBA - Documents.Activate功能无法正常工作

时间:2014-02-06 13:42:45

标签: vba word-vba word-2010

我不习惯VBA语言,所以我来找你帮忙解决我的问题。

基本上,我想要做的是,在打开MS Word 2010文档时,打开一个新文档,将注意力集中在它上面,然后用它做任务。

我面临的问题是我可以有效地打开新文档,但是设置函数的.activate函数不起作用,因为后面的指令仍在第一个文档中执行

这是我的代码:

Private Sub BOK_Click()

*...instructions...*

'Opens a new document
Application.Documents.Add

'Select the latest opened document and sets the focus on it
Application.Documents(Application.Documents.Count).Activate

* do stuff *

End Sub

如果有帮助,完整的背景是: 我有一个主模板,其中包含6个预填充模板,并根据用户的选择(从下拉表单)选择正确的预填充模板并在新的Word文档中打开它,然后关闭主模板。

1 个答案:

答案 0 :(得分:1)

Documents.Add做了什么:

  • 创建一个窗口
  • 呈现所提供的(或在本例中为正常)模板
  • 的副本
  • 在窗口中显示
  • 将所有打开的文档的索引提高1
  • 将索引1分配给新添加的文档
  • 将窗户置于前方并将焦点对准

(通常)无需显式激活刚刚添加的文档。如果您必须或想要使用Activate,最好按名称引用文档,因为索引往往会漂移(如上所述)。

doc1 = ActiveDocument.Name
Documents.Add
doc2 = ActiveDocument.Name
' Do something with document2
Documents(doc1).Activate
' Do something with document1
Documents(doc2).Activate
' Do something with document2 again