| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1437 人关注过本帖
标题:vb6合并office2007中的word文档
只看楼主 加入收藏
二中仙神
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2015-7-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
vb6合并office2007中的word文档
C:\abc\中有1.docx,2.docx,3.docx.....30.docx如何把它们合并到一个新的文档中?
搜索更多相关主题的帖子: office2007 如何 
2015-07-17 13:29
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:20 
在VB6中引用WORD没做过几次。
试试这个,两个文件合并为新文件。
程序代码:
 Dim wApp As Word.Application

 Dim wDoc As Word.Document
Private Sub Command1_Click()
  Merge "c:\1.docx", "c:\2.docx", wApp
  Form1.Caption = "OK"
End Sub

Private Sub Form_Load()
  Set wApp = New Word.Application
End Sub


 Function Merge(ByVal sFirstFile As String, ByVal sSecondFile As String, ByRef wrdapp As Word.Application) As Boolean
    Dim docNew As Word.Document
   
    'open the main document
    Set docNew = wrdapp.Documents.Open(sSecondFile)
   
    'insert the coversheet
    wrdapp.Selection.InsertFile FileName:=sFirstFile, Range:="", ConfirmConversions:=False, Link:=False, Attachment:=False
   
    'set position to first page/coversheet
    wrdapp.Selection.MoveUp Unit:=wdScreen, Count:=1
   
    'force header/footer to begin on 2nd page
    With wrdapp.Selection.PageSetup
        .DifferentFirstPageHeaderFooter = True
    End With
   
    'save the document
    docNew.SaveAs "C:\NewFile.docx"
End Function


 

大开眼界
2015-07-17 14:44
二中仙神
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2015-7-17
收藏
得分:0 
我可能没有说清楚:win7系统,office2007.如果是XP系统及office2003能够很好解决。
Dim wApp As Word.Application
Dim wDoc As Word.Document
运行后提示这两名错误
2015-07-18 12:08
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
回复 3楼 二中仙神
在工程中引用Microsoft Word *.* Object Library
我是在XP下的Word2007测试,Win7自己试.

大开眼界
2015-07-20 09:47
二中仙神
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2015-7-17
收藏
得分:0 
先谢谢您的指导,不过引用了Microsoft Word *.* Object Library,还是不行。另外找到一个拆分的
结果每页都是空白。如下:

Private Sub Form_Load()
Dim w As Object, d As Object, s As Object, page As Object, i As Integer
Set w = CreateObject("WORD.application")
w.Visible = True
Set d = w.Documents.Open("C:\d.docx")
'文档名相应改为你的文档名
For Each page In d.ActiveWindow.ActivePane.pages
i = i + 1

d.Range.Copy
'复制全部,不是每一页
'我想把每一页的内容作为一个新文件保存

Set s = w.Documents.Add
s.Content = page.Rectangles.Item(1).Range
s.Range(0, 0).Paste
s.SaveAs "C:\d" & i & "t.docx"
'文档名相应改为你的文档名
s.Close
Set s = Nothing

Next

Set w = Nothing
d.Close
Set d = Nothing
MsgBox "完毕"
End
2015-07-22 15:34
二中仙神
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2015-7-17
收藏
得分:0 
您好,经过测试应该这样写:

Dim wApp As Object
'Dim wDoc As Word.Document
 Private Sub Command1_Click()
   Merge "c:\1.docx", "c:\2.docx", wApp
   Form1.Caption = "OK"
 End Sub
 
Private Sub Form_Load()
   Set wApp = New Word.Application
 End Sub
 
Function Merge(ByVal sFirstFile As String, ByVal sSecondFile As String, ByRef wrdapp As Word.Application) As Boolean
     Dim docNew As Word.Document
   
     'open the main document
     Set docNew = wrdapp.Documents.Open(sSecondFile)
   
     'insert the coversheet
     wrdapp.Selection.InsertFile FileName:=sFirstFile, Range:="", ConfirmConversions:=False, Link:=False, Attachment:=False
   
     'set position to first page/coversheet
     wrdapp.Selection.MoveUp Unit:=wdScreen, Count:=1
   
     'force header/footer to begin on 2nd page
     With wrdapp.Selection.PageSetup
         .DifferentFirstPageHeaderFooter = True
     End With
   
     'save the document
     docNew.SaveAs "C:\NewFile.docx"
    '''''''
     docNew.close
 End Function

 
2015-07-23 06:46
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
回复 6楼 二中仙神
在WIN7下就是改了Dim wApp As Object?感觉这不是XP和WIN7的区别。

大开眼界
2015-07-23 08:55
快速回复:vb6合并office2007中的word文档
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050664 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved