ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 912|回复: 2

[求助] 利用vba实现邮件合并中有个问题,求帮助!谢谢

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-4-10 09:57 | 显示全部楼层 |阅读模式
前辈好,本人是个新手。因为工作需要,参考一些前辈的代码设计了一套vba。跟邮件合并是类似的,即在Excel中录入数据,通过vba宏,在固定模板的word里实现批量导出。
但是在vba代码运行过程中,只能实现第一数据行的数据代入替换。打个比方,模板是一页,数据行有3行,那么导出的批文件word是3页,应当是每一页调取Excel中每一行的数据资源,但是这3页的每一页调用的都是第一数据行的数据资源。

请求各位前辈的帮助。因为工作要求,word模板不太方便直接贴出来,暂且先粘贴一下vba代码。
以下是我的代码,万望有大神能够指点一下,非常感谢了!

   Dim Word对象 As New Word.Application, 当前路径, 导出文件名, 导出路径文件名, 判断, i, j
   Dim Str1, Str2
   当前路径 = ThisWorkbook.Path
   最后行号 = Sheets("数据").Range("B65536").End(xlUp).Row
   判断 = 0
   导出文件名 = "公司直接打印.doc"
   导出路径文件名 = 当前路径 & "\" & 导出文件名
   FileCopy 当前路径 & "\模板\公司.doc", 导出路径文件名
   With Word对象
      .Documents.Open 导出路径文件名
      .Visible = False
      .ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument '设置位置在正文
      .Selection.WholeStory '全选
      .Selection.Copy '复制
      If 最后行号 > 3 Then
         For i = 3 To 最后行号 - 1 '复制页
            .Selection.EndKey Unit:=wdStory '光标置于文件尾
            .Selection.InsertBreak Type:=wdPageBreak '分页
            .Selection.PasteAndFormat (wdPasteDefault) '粘贴
         Next i
      End If
      For i = 3 To 最后行号
        For j = 1 To 9 '填写文字数据
           Str1 = "数据" & Format(j, "000")
           Str2 = Sheets("数据").cells(i, j + 1)
           .Selection.HomeKey Unit:=wdStory '光标置于文件首
           Do While .Selection.Find.Execute(Str1)
                .Selection.Font.Color = wdColorAutomatic '字符为自动颜色
                .Selection.Text = Str2 '替换字符串
                .Selection.HomeKey Unit:=wdStory
            Loop
        Next j
      Next i
   End With
   Word对象.Documents.Save
   Word对象.Quit
   Set Word对象 = Nothing
   If 判断 = 0 Then
      i = MsgBox("已生成“" & 导出路径文件名 & "”!", 0 + 48 + 256 + 0, "提示:")
   End If
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-4-10 15:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
能帮帮忙么。。。

TA的精华主题

TA的得分主题

发表于 2019-4-10 17:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
能写出这样的代码已经很厉害了,仔细调试一下应该能解决问题                                                   
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-11 11:18 , Processed in 0.018361 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表