ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 邮件合并后,每一页WORD单独保存1个文件,saveas 路径总是通不过

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-11-21 22:45 | 显示全部楼层 |阅读模式
本帖最后由 shrimp_go 于 2016-11-21 22:49 编辑

邮件合并后,每一页WORD单独保存1个文件,saveas 路径总是通不过

用了http://club.excelhome.net/thread-386660-1-1.html里的代码

就是无法运行,一直提示路径问题
保存的文件名需要是日期+号码,保存在D盘退费文件夹里

上传样表,原表数据很大,花式求助。。

QQ截图20161121224143.png

Desktop.zip

22.67 KB, 下载次数: 20

TA的精华主题

TA的得分主题

发表于 2016-11-22 01:47 | 显示全部楼层
在你的基础上修改如下(我尽量保持你原有代码):
  1. Sub myMailMerge()
  2. '   主文档的类型为信函
  3. '   合并全部数据记录
  4. '   假设主文档已链接好数据源,可以进行正常的邮件合并
  5.    Dim myMerge As MailMerge, i As Integer, myname As String
  6.    Application.ScreenUpdating = False
  7.    Set myMerge = ActiveDocument.MailMerge
  8.    With myMerge.DataSource
  9.       If .Parent.State = wdMainAndDataSource Then
  10.          .ActiveRecord = wdFirstRecord
  11.          For i = 1 To .RecordCount
  12.             .FirstRecord = i
  13.             .LastRecord = i
  14.             .Parent.Destination = wdSendToNewDocument
  15. '            取得数据源第1个和第2个字段(合并域)的当前数据字符串,用以命名文件
  16.             myname = .DataFields(1).Value & .DataFields(2).Value
  17.             .ActiveRecord = wdNextRecord
  18.             .Parent.Execute  '每次合并一个数据记录
  19.             With ActiveDocument
  20.                .Content.Characters.Last.Previous.Delete  '删除分节符
  21.                myPath = ThisDocument.Path & ""
  22.                .SaveAs myPath & Replace(myname, "/", "-") & ".doc" '假设生成的各文档保存于E盘根目录下
  23.                .Close  '关闭生成的文档(已保存)
  24.             End With
  25.          Next
  26.       End If
  27.    End With
  28.    Application.ScreenUpdating = True
  29. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-11-22 13:38 | 显示全部楼层
duquancai 发表于 2016-11-22 01:47
在你的基础上修改如下(我尽量保持你原有代码):

这次到是没报错了。。但是。。它没保存。。您给的这个代码理论是应该是保存在我找开的的WORD文档处对么?

TA的精华主题

TA的得分主题

发表于 2016-11-22 18:52 | 显示全部楼层
本帖最后由 ts264 于 2016-11-22 18:58 编辑

你的日期格式用了/,文件名保存应该不能用/符
用户号码18628345009因用户赵芡办理了其它号码,故到我厅办理退网销号业务。余额7199.00元,已正常为用户办理。
自有营业厅
11/18/2016

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-11-23 14:24 | 显示全部楼层
ts264 发表于 2016-11-22 18:52
你的日期格式用了/,文件名保存应该不能用/符
用户号码18628345009因用户赵芡办理了其它号码,故到我厅办理 ...

用的是myname = .DataFields(1).Value & .DataFields(2).Value这个,不是第一个和第二个数据源么,并不是日期呀。。

TA的精华主题

TA的得分主题

发表于 2016-11-25 12:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
shrimp_go 发表于 2016-11-23 14:24
用的是myname = .DataFields(1).Value & .DataFields(2).Value这个,不是第一个和第二个数据源么,并不是 ...

DataFields(2).Value的值就是日期的值了,excel转存word的值就是xx/xx/xxxx格式,你可以试试直接123代替第一个数据代替,第一个数据是可以合并的。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-13 13:48 , Processed in 0.030492 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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