ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

excel数据批量填入word模板,生成一户一表

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-6-4 08:14 | 显示全部楼层 |阅读模式
根据excel数据批量填入word模板,生成一户一表

新建文件夹 (2).rar

20.41 KB, 下载次数: 25

TA的精华主题

TA的得分主题

发表于 2024-6-4 08:20 | 显示全部楼层
没图,又不想下载。感觉邮件合并可以?

TA的精华主题

TA的得分主题

发表于 2024-6-4 09:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我有点奇怪,这个word的《登记表》也算是一个规范的表格,并没有大量的文字,为什么不做成Excel版本呢,这样用VBA生成也方便得多啊。

TA的精华主题

TA的得分主题

发表于 2024-6-4 10:06 | 显示全部楼层
直接在excel中生成一户一表岂不更简单,生成word文档,似乎是在人为的制造麻烦吧

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-6-4 10:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
3190496160 发表于 2024-6-4 10:06
直接在excel中生成一户一表岂不更简单,生成word文档,似乎是在人为的制造麻烦吧

直接在excel中生成一户一表也可以

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-6-4 10:11 | 显示全部楼层
LIUZHU 发表于 2024-6-4 09:55
我有点奇怪,这个word的《登记表》也算是一个规范的表格,并没有大量的文字,为什么不做成Excel版本呢,这 ...

工作需要也没办法啊

TA的精华主题

TA的得分主题

发表于 2024-6-4 10:11 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Option Explicit
Sub A()
    Dim appWD, doc As Object, m, j, t, n
    Set appWD = CreateObject("Word.Application")
    Dim I, ARR
    Application.ScreenUpdating = False
    ARR = [A1].CurrentRegion
    m = 4
    For I = 2 To UBound(ARR)
        If ARR(I, 8) <> "" Then
            Set doc = appWD.Documents.Open(ThisWorkbook.Path & "\登记表.docx")
            With doc.TABLES(1)
                .cell(2, 1).Range.Text = "户号:" & ARR(I, 1) '户号
                .cell(2, 7).Range.Text = "家庭总人口数:共" & ARR(I, 8) & "  人"
                t = ARR(I, 8)
            End With
        End If
        With doc.TABLES(1)
            For j = 2 To 7
                .cell(m, j) = ARR(I, j)
            Next
        End With
        n = n + 1
        m = m + 1
        If n = t Then
            doc.SaveAs ThisWorkbook.Path & "\" & ARR(I, 1) & "_登记表.docx"
            doc.Close
            m = 4
            n = 0
        End If
Next
appWD.Quit
Set doc = Nothing
Application.ScreenUpdating = True
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-6-4 10:23 | 显示全部楼层
Sub 生成word()
Application.ScreenUpdating = False
Dim ar As Variant
Dim i As Long, r As Long, rs As Long
Dim br()
Dim d As Object
Set d = CreateObject("scripting.dictionary")
Set wdApp = CreateObject("word.application")
wdApp.Visible = True
myPath = ThisWorkbook.Path & "\"
With Sheets("资料")
r = .Cells(Rows.Count, 1).End(xlUp).Row
    If r < 2 Then MsgBox "数据源为空,请先导入数据!": End
    ar = .Range("a1:h" & r)
End With
For i = 2 To UBound(ar)
    If ar(i, 1) <> "" Then
        If Not d.exists(ar(i, 1)) Then Set d(ar(i, 1)) = CreateObject("scripting.dictionary")
        d(ar(i, 1))(i) = ""
    End If
Next i
For Each k In d.keys
    n = 0
    ReDim br(1 To UBound(ar), 1 To UBound(ar, 2) - 1)
    For Each kk In d(k).keys
        n = n + 1
        For j = 2 To UBound(ar, 2)
            br(n, j - 1) = ar(kk, j)
        Next j
    Next kk
    FileCopy myPath & "登记表.docx", myPath & "一户一表\" & k & ".docx"
    Set wdD = wdApp.Documents.Open(myPath & "一户一表\" & k & ".docx")
    With wdD.Tables(1)
         .cell(2, 1).Range.Text = "户号:" & k
         .cell(2, 7).Range.Text = "家庭总人口数:共 " & n & " 人"
         For i = 1 To n
            For j = 1 To 7
               .cell(i + 3, j + 1).Range.Text = br(i, j)
            Next j
        Next i
    End With
    wdD.Save
    wdD.Close True
Next k
wdApp.Quit
Set wdD = Nothing
Set wdApp = Nothing
Application.ScreenUpdating = False
MsgBox "ok!"
End Sub

TA的精华主题

TA的得分主题

发表于 2024-6-4 10:24 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
新建文件夹 (2).rar (32.74 KB, 下载次数: 34)

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-6-4 10:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 欧陈养 于 2024-6-4 16:04 编辑
谢谢老师
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 07:43 , Processed in 0.049137 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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