ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

能否用邮件合并的方式解决按户分页生成文档

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-7-19 22:45 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
各位老师,EXCEL有村里的户口(家庭成员人数不定)信息,每个家庭成员的户编码是一样的,WORD有按户(包含家庭成员)分页登记的表格 能否用邮件合并的方式生成文档!
     感谢!

TA的精华主题

TA的得分主题

发表于 2019-7-30 11:00 | 显示全部楼层
这个应该不行,邮件合并是由模板而生成多页文档,但已经有多个文档,然后往里面写信息,不能用邮件合并

TA的精华主题

TA的得分主题

发表于 2019-7-30 12:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
不能用邮件合并,还可以试试 VBA。楼主 请提供一份模拟文档,说明要达成的目标。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-7-30 15:43 | 显示全部楼层
谢谢亲!已上传

户登记表.zip

23.42 KB, 下载次数: 16

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-7-30 15:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
413191246se 发表于 2019-7-30 12:36
不能用邮件合并,还可以试试 VBA。楼主 请提供一份模拟文档,说明要达成的目标。

谢谢亲,已上传

TA的精华主题

TA的得分主题

发表于 2019-7-30 23:26 | 显示全部楼层
* 楼主,你好!——我边想算法边写代码,觉得问题不大。但是,我觉得你给的资料不是最真实的资料(当然不必给人员真实姓名;另外,“户主”是不是必须在每户的最上边一行呢?你给的资料不是这样),但表格得是真实表格。有限于此,我也不再编码,先停工,看看你是否再给更真实的表格,再继续编。

* 还有,我编码、算法思路也比较慢,因为水平低嘛,所以,如果 楼主 觉得太慢,可以等待本坛高手、大神;如果不在乎时间,可以等待,就等我的代码。

* 下面是试用代码:(代码注释部分请认真关注一下!)
  1. Sub 户编码()
  2. '请将 Excel 表格复制到新建 Word 文档中,并保存为同一文件夹下的 Word 文档,文件名为“户编码”
  3. '请将 Word 文档“表一”改名为“调查表”,并同时打开“调查表”和“户编码”两个 Word 文档
  4.     Dim dcb As Document, hbm As Document
  5.     Dim m&, i&

  6.     Set dcb = Documents("调查表.docx")
  7.     Set hbm = Documents("户编码.docx")

  8. '户编码--数据整理
  9.     hbm.Activate
  10.     If ActiveDocument.Tables.Count <> 1 Then MsgBox "户编码文档仅允许有一个表格!", 0 + 16: End
  11.     ActiveDocument.Tables(1).Rows(1).Delete
  12.     i = 1
  13.     With ActiveDocument
  14.         Do
  15.             With .Tables(i)
  16.                 Do
  17.                     m = m + 1
  18.                     .Cell(m, 1).Select
  19.                     If m = Selection.Tables(1).Range.Information(wdMaximumNumberOfRows) Then GoTo sk
  20.                     If .Cell(m + 1, 1).Range.Text = .Cell(m, 1).Range.Text Then
  21.                     Else
  22.                         .Cell(m + 1, 1).Select
  23.                         Selection.SplitTable
  24.                         Exit Do
  25.                     End If
  26.                 Loop
  27.                 i = i + 1
  28.                 m = 0
  29.             End With
  30.         Loop
  31.     End With
  32. sk:
  33. End Sub
  34. Sub 调查表()
  35. '主文档----整理
  36. '    dcb.Activate
  37. '    MsgBox ActiveDocument.Tables.Count
  38.     Dim s&
  39.     Dim j&
  40.     Dim k&
  41.     s = Documents("户编码").Tables(1).Rows.Count
  42.    
  43. '    MsgBox "拆分次数 s=" & s
  44.     With ActiveDocument.Tables(1).Range
  45.         .Cells(2).Select
  46.         Selection.SplitTable
  47.     End With
  48.    
  49.     j = 1
  50.     Do
  51.         j = j + 1
  52.         With ActiveDocument.Tables(j).Range
  53.             .Cells(32).Select
  54.             Selection.SplitTable
  55.         End With
  56.     Loop Until j = s + 1
  57.    
  58.     '循环赋值
  59.     j = 1
  60.     Do
  61.         j = j + 1
  62.         k = k + 1
  63.         ActiveDocument.Tables(j).Range.Cells(3).Range.Text = Documents("户编码").Tables(1).Cell(k, 2).Range.Text
  64.         ActiveDocument.Tables(j).Range.Cells(5).Range.Text = Documents("户编码").Tables(1).Cell(k, 3).Range.Text
  65.         
  66.     Loop Until j = s
  67. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2019-7-31 00:02 | 显示全部楼层
* 楼主,我提个建议:请重新上传附件,要求是:“户编码”文档,必须是全部真实数据(但人名、电话号码、身份证信息请给变通一下);“调查表”文档,请在所有要填的位置上填上数据,并标上红色(户主所在的整行数据请全部填充),比如要填 30 项,结果只给我 20 项,另外 10 项位置的数据 楼主 难道想自己处理吗?所以,要给我真实数据,一次完成。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-12-5 14:32 | 显示全部楼层
413191246se 发表于 2019-7-31 00:02
* 楼主,我提个建议:请重新上传附件,要求是:“户编码”文档,必须是全部真实数据(但人名、电话号码、身 ...

谢谢亲,最近没有上线,才看到,不好意思呀

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-12-5 14:49 | 显示全部楼层
413191246se 发表于 2019-7-30 23:26
* 楼主,你好!——我边想算法边写代码,觉得问题不大。但是,我觉得你给的资料不是最真实的资料(当然不必 ...

只导入EXCEL表中的项,其他不是必填项,每一家的户主在第一行

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-12-5 14:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
萍聚2019 发表于 2019-12-5 14:49
只导入EXCEL表中的项,其他不是必填项,每一家的户主在第一行

如果再需要详细的资料,我晚上再传一份
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-19 05:46 , Processed in 0.048026 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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