2016-06-18 221 views
0

我有一个问题,关于在EXCEL中使用VBA来合并几个word文档的内容。这可能是很简单的,但我是新来的VBA世界......目前,我可以使用VBA合并来自几个word文档的某些页面的内容

  1. 打开一个Word文档,并复制其所有内容的
  2. 其粘贴到一个合并word文档
  3. 重复步骤1和2

但是,我想知道如何跳过使用VBA的所有文档的第一页。我试过tempDoc.Range(Start:=2).Select,但没有奏效。感谢您的任何建议!

Set objTempWord = CreateObject("Word.Application") 
Set tempDoc = objWord.Documents.Open(Folderpath to Word Document) 
Set objTempSelection = objTempWord.Selection 
tempDoc.Range.Select 
tempDoc.Range.Copy 
objSelection.TypeParagraph 
objSelection.Paste 
objSelection.InsertBreak Type:=wdSectionBreakNextPage 
tempDoc.Close 

回答

2

编辑 - 添加另一个Word恒 - 选择对象

的改变定义假设你拥有一切定义 这将启动第2页,然后选择eveyrthing到文件结尾的

const wdGoToAbsolute = 1 
const wdGoToPage = 1 
const wdGoToNext = 2 
const wdStory = 6 
const wdExtend = 1 

Set objTempWord = CreateObject("Word.Application") 
Set tempDoc = objWord.Documents.Open(Folderpath to Word Document) 

With tempDoc.Application 
    .Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Name:="2" 
    .Selection.EndKey Unit:=wdStory, Extend:=wdExtend 
    .Selection.Copy 
End With 

objSelection.TypeParagraph 
objSelection.Paste 
objSelection.InsertBreak Type:=wdSectionBreakNextPage 
tempDoc.Close 
+0

感谢您的建议。我用你的代码,但得到了'运行时错误438对象不支持这个属性或方法'关于语句'.Selection.Goto什么:= wdGoToPage,其中:= wdGoToAbsolute,计数:= 3' –

+0

更新后的代码使用不同的代码对象进行选择并添加另一个未定义的字常量 – dbmitch

+0

再次感谢。试图修改代码,但得到了'运行时错误91:对象变量或块变量未设置'为同一语句... –

0

不是一个单词VB专家,但我知道的范围对象可以接受的参数为第一个字符和最后一个字符的数目 - https://msdn.microsoft.com/en-us/library/office/ff845882.aspx。因此,您需要知道第二张纸上第一个字符的编号是多少个字符,最后一张纸上最后一个字符的个数是多少。然后您可以使用范围对象 - https://msdn.microsoft.com/en-us/library/office/ff845882.aspx

这就是说你提到的Excel,但不解释为什么 - 这是一个Word的事情或Excel?

相关问题