使用VBA组合来自多个word文档的某些页面的内容

时间:2016-06-18 19:01:30

标签: excel vba excel-vba ms-word

我有一个问题,即在VBA中使用EXCEL组合几个word文档的内容。这可能很简单,但我是VBA世界的新手...目前,我可以

  1. 打开word文档并复制其所有内容
  2. 将其粘贴到合并的Word文档
  3. 重复步骤1和2
  4. 但是,我想知道如何使用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 个答案:

答案 0 :(得分:2)

  

编辑 - 添加另一个Word常量 - 更改选择对象的定义

假设您已经定义了其他所有内容 这将从第2页开始,然后选择传送到文件结尾

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

答案 1 :(得分:0)

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

那说你提到Excel但不解释原因 - 这是Word还是Excel?