有word vba 读取excel中存的word待合并路径,合并word文件
来源:互联网 发布:ws2812b单片机程序 编辑:程序博客网 时间:2024/04/29 13:01
word文件合并
第一步:
在word中使用Ado
在vba中添加引用
Microsot ActiveX data Objects 2.8
第二步 准备excel文件
样式如下:
文件 标题 D:/test/1001.doc [一.基础知识]1,什么是VC? D:/test/1002.doc [一.基础知识]2,什么是竞价? D:/test/1003.doc [一.基础知识]3,什么是借力发展? D:/test/1004.doc [一.基础知识]4,常见的编程语言? D:/test/1005.doc [一.基础知识]5,网络三阶段是指的哪三阶段? D:/test/1006.doc [一.基础知识]6,流量的分类? D:/test/1007.doc [一.基础知识]7,什么是全民皆赚? D:/test/1008.doc [一.基础知识]8,日流量10万IP程序原理是什么? D:/test/1009.doc [一.基础知识]9,如何选购空间。 D:/test/1010.doc [一.基础知识]10,什么是正规站。 D:/test/1011.doc [一.基础知识]11,第三页和文本地址。 D:/test/1012.doc [一.基础知识]12,流量来源。
第三步:
执行vba源码
如下:
Sub Macro4()
'
Dim adoConnection As New ADODB.Connection
Dim adoRecordset As New ADODB.Recordset
Dim ExcelName As String
Dim MyDialog As FileDialog, oDoc As Variant, myDoc As Document, TestDoc As Document
Dim myRange As Range, OldName As String, ErrArray() As Variant
Dim oArray As Variant, NewName As String
On Error Resume Next '忽略错误
' CommonDialog1.ShowOpen
'Word.Documents.Open(FileName:="C:/Documents and Settings/User/桌面/"
ChangeFileOpenDirectory "C:/Documents and Settings/User/桌面/"
Set TestDoc = Word.Documents.Open(FileName:="test.doc", Visible:=True)
ExcelName = "d:/obj.xls"
'OLE DB + ODBC Driver 方式:
'adoConnection.Open "Data Provider=MSDASQL.1;driver=Microsoft Excel Driver (*.xls);DBQ=e:/temp/book2.xls"
'Microsoft.Jet.OLEDB.4.0 方式,(建?)
adoConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & ExcelName & ";Extended Properties='Excel 8.0;HDR=Yes'"
adoRecordset.Open "select * from [sheet1$]", adoConnection, adOpenKeyset, adLockOptimistic
Debug.Print adoRecordset.RecordCount
Dim i As Integer
Do Until adoRecordset.EOF
'For i = 0 To adoRecordset.Fields.Count - 1
'Debug.Print adoRecordset.Fields.Item(0).Name
' Debug.Print adoRecordset.Fields.Item(i).Value
'Next i
'读取excel字段内容,整个一列
'Debug.Print adoRecordset.Fields.Item(0).Value
'Debug.Print adoRecordset.Fields.Item(1).Value
'以隐藏方式打开Word文档
Set myDoc = Word.Documents.Open(FileName:=adoRecordset.Fields.Item(0).Value, Visible:=True)
Selection.WholeStory
Selection.Copy
Windows(TestDoc).Activate
Selection.TypeParagraph
Selection.Font.Color = wdColorRed
Selection.TypeText Text:=adoRecordset.Fields.Item(1).Value
Selection.TypeParagraph
Selection.TypeParagraph
Selection.Font.Color = wdColorAutomatic
Selection.PasteAndFormat (wdPasteDefault)
ActiveDocument.Save
' Set myRange = myDoc.Paragraphs.First.Range '取得第1个段落区域
' OldName = Application.CleanString(myRange.Text) '清除非打印字符
myDoc.Close False '关闭文档
adoRecordset.MoveNext
Loop
End Sub
第一步:
在word中使用Ado
在vba中添加引用
Microsot ActiveX data Objects 2.8
第二步 准备excel文件
样式如下:
第三步:
执行vba源码
如下:
Sub Macro4()
'
Dim adoConnection As New ADODB.Connection
Dim adoRecordset As New ADODB.Recordset
Dim ExcelName As String
Dim MyDialog As FileDialog, oDoc As Variant, myDoc As Document, TestDoc As Document
Dim myRange As Range, OldName As String, ErrArray() As Variant
Dim oArray As Variant, NewName As String
On Error Resume Next '忽略错误
' CommonDialog1.ShowOpen
'Word.Documents.Open(FileName:="C:/Documents and Settings/User/桌面/"
ChangeFileOpenDirectory "C:/Documents and Settings/User/桌面/"
Set TestDoc = Word.Documents.Open(FileName:="test.doc", Visible:=True)
ExcelName = "d:/obj.xls"
'OLE DB + ODBC Driver 方式:
'adoConnection.Open "Data Provider=MSDASQL.1;driver=Microsoft Excel Driver (*.xls);DBQ=e:/temp/book2.xls"
'Microsoft.Jet.OLEDB.4.0 方式,(建?)
adoConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & ExcelName & ";Extended Properties='Excel 8.0;HDR=Yes'"
adoRecordset.Open "select * from [sheet1$]", adoConnection, adOpenKeyset, adLockOptimistic
Debug.Print adoRecordset.RecordCount
Dim i As Integer
Do Until adoRecordset.EOF
'For i = 0 To adoRecordset.Fields.Count - 1
'Debug.Print adoRecordset.Fields.Item(0).Name
' Debug.Print adoRecordset.Fields.Item(i).Value
'Next i
'读取excel字段内容,整个一列
'Debug.Print adoRecordset.Fields.Item(0).Value
'Debug.Print adoRecordset.Fields.Item(1).Value
'以隐藏方式打开Word文档
Set myDoc = Word.Documents.Open(FileName:=adoRecordset.Fields.Item(0).Value, Visible:=True)
Selection.WholeStory
Selection.Copy
Windows(TestDoc).Activate
Selection.TypeParagraph
Selection.Font.Color = wdColorRed
Selection.TypeText Text:=adoRecordset.Fields.Item(1).Value
Selection.TypeParagraph
Selection.TypeParagraph
Selection.Font.Color = wdColorAutomatic
Selection.PasteAndFormat (wdPasteDefault)
ActiveDocument.Save
' Set myRange = myDoc.Paragraphs.First.Range '取得第1个段落区域
' OldName = Application.CleanString(myRange.Text) '清除非打印字符
myDoc.Close False '关闭文档
adoRecordset.MoveNext
Loop
End Sub
- 有word vba 读取excel中存的word待合并路径,合并word文件
- Word插入文件 VBA 合并 文件
- WORD文件合并处理
- word合并单元格后,VBA读取设置相应单元格内容
- 【一步一步学习VBA】WORD 中创建表格进行单元格合并
- 读取word excel 文件
- 读取word excel 文件
- 合并多个word文件
- Word合并文件 + 自定义命令
- Word文档中--邮件合并
- 合并照片到word中
- Word邮件合并的应用
- C# 实现Excel转Word、Word转PDF、合并PDF
- vba excel to word
- JS 合并列,导出excel,word
- jacob合并几个word文件到一个word文件
- word 中的邮件合并
- Word之邮件合并
- 搞清楚VC++中的char,wchar_t,TCHAR (ZT)
- 微软正式发布Windows Server 2008系统
- C#中的日期比较
- 心牢
- 大量使用开放平台的后果
- 有word vba 读取excel中存的word待合并路径,合并word文件
- 合并指定文件目录下的所用word文件的方法
- 获取手机的IMEI与IMSI
- java~放不下~
- JScrollPane的JTextArea在JTextArea.append()时自动滚动到最末行
- 内存映射文件
- subversion安装
- subversion启动
- 表单