学习Excel技术,关注微信公众号:

excelperfect

我在Excel工作表中存放着数据,如下图1所示。

图1

我想将这些数据逐行自动输入到Word文档的表格中并分别自动保存,Word文档表格如下图2所示,文档名为“datafromexcel.docx”。

图2

解决思路

首先,将需要自动填写的datafromexcel.docx文档作为模板,并对每个要填写的位置放置书签。例如,将光标移至上图2所示表格中姓名后的空格,单击功能区选项卡“插入——书签”,在弹出的“书签”对话框中输入书签名“姓名”,如下图3所示。

图3

同样,在表的其它空格中插入相应的书签,结果如下图4所示。

图4

在Excel工作表中,将相应数据所在的单元格命名,名称与要填写的上图4中表的书签名相同。这就需要我们先命名单元格,待将相应的数据输出到Word表中后,再删除这些名称。然后,移至下一行,再进行单元格命名,并将相应的数据输出到Word表中,再删除这些名称。如此反复,直至工作表每行数据均创建了Word文档。

编写代码

按照上述思路,在存放数据的Excel工作簿中编写代码:

Sub ExportDataToWord()

'变量声明

Dim objWord As Object,docWord As Object

Dim wb As Workbook

Dim xlName As Name

Dim Path As String

Dim lLastRow As Long

Dim i As Long

'下面两个变量可修改为实际工作簿和路径

'设置数据所在工作簿

Set wb = ActiveWorkbook

'要输入数据的Word模板

Path = wb.Path & "\datafromexcel.docx"

'错误处理

On Error GoTo ErrorHandler

'工作簿工作表中最后数据行行号

lLastRow =wb.Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row

'遍历工作表数据行

'从中取出数据填充Word文档

For i = 2 To lLastRow

'命名名称

With wb.Worksheets("Sheet1")

.Range("A" & i).Name = Range("A1").Value

.Range("B" & i).Name = Range("B1").Value

.Range("C" & i).Name = Range("C1").Value

.Range("D" & i).Name = Range("D1").Value

End With

'创建新的Word实例

Set objWord = CreateObject("Word.Application")

'错误处理

On Error GoTo ErrorHandler

'打开Word文档

Set docWord = objWord.Documents.Add(Path)

'遍历当前工作簿中的名称

For Each xlName In wb.Names

'如果在Word文档中存在与名称相同的书签

If docWord.Bookmarks.Exists(xlName.Name) Then

'将工作表名称的值放入书签所在位置

docWord.Bookmarks(xlName.Name).Range.Text = Range(xlName.Value)

End If

Next xlName

With objWord

'激活并显示Word文档

.Visible = True

.ActiveWindow.WindowState = 0

.Activate

'以列A中相应单元格中的数据命名并保存Word文档

.ActiveDocument.SaveAs wb.Path & "\" & Range("A" & i).Value & ".docx"

'退出Word

.Application.Quit

End With

'释放对象

Set objWord = Nothing

'删除名称

Names(Range("A1").Value).Delete

Names(Range("B1").Value).Delete

Names(Range("C1").Value).Delete

Names(Range("D1").Value).Delete

Next i

'释放Word对象并退出过程

ErrorExit:

Set objWord = Nothing

Exit Sub

'错误处理

ErrorHandler:

If Err Then

MsgBox "错误号: " & Err.Number &"; 出问题了."

If Not objWord Is Nothing Then

objWord.QuitFalse

End If

Resume ErrorExit

End If

End Sub

代码中已经给出了详细的注释,有兴趣的朋友可以仔细体会。

运行代码

在运行代码前,要保证代码所在的工作簿与Word文档模板datafromexcel.docx在同一文件夹中。运行ExportDataToWord过程,在文件夹中会生成以列A中的姓名为名称的Word文档,如下图5所示。

图5

打开任一文档,结果都是填写好了的表格,如下图6所示。

图6

代码的图片版如下:

word表格图片自动适应表格大小_Excel应用实践20:使用Excel中的数据自动填写Word表格...相关推荐

  1. python从excel中读取数据并填写网页表格

    话不多说,先直接上代码 import time from selenium import webdriver from selenium.webdriver.common.keys import Ke ...

  2. xlsx表格怎么做汇总统计_excel表格 的自动统计数据-excel,怎么做数据自动汇总

    excel,怎么做数据自动汇总 在EXCEL里面查找然后自动统量的具骤如下: 我们需要的材料分别是:电脑Excel表格. 1.首先我们打开需要编辑的Excel表格,点击打开"查找和选择&qu ...

  3. word录入表单数据 java 导入系统,java导入excel | 怎么把excel中的数据批量导入到word中的表格中...

    用javascript怎么实现把excel中的数据批量导入到数据库表中 这个js不能直接实现吧 我们程序用到 先读取excel内容转换成数组 然后放到页面上 再提交表单 储存 MySql如何批量添加数 ...

  4. matlab中图显示单元格,excel如何根据表格中的数据自动在单元格中画图:

    如何利用matlab根据excel表格里面的数据画图 将待的结构的数据录入Excel中,录入意行列要跟原矩阵一一对应 录入完以后保存数据,为了后续使用方便,命名时我们最好把它命名为我们接下来在MATL ...

  5. 如何将excel表格导入word_如何将Excel中的数据写入Word表?

    之前我们分享了一期小代码,内容是如何将word中表格的数据读入excel-- 之后有朋友表示知道了,又问如何将excel中的数据写入word-- 此时此刻,我再一次清醒的意识到,这世界上像我这样好的人 ...

  6. matlab如何在word中插入多个表格,怎么把excel中的数据批量导入到word中的表格中《不同表格间的数据导入》...

    如何将excel表格中大量数据导入matlab中并作图 工具:MATLAB.office excel 将待导入的矩阵结构据录入Excel中,录入时注意行列原矩阵一一对应. 录入完以后保存数据,为了后续 ...

  7. lisp倒入excel数据画图_Excel表格数据在cad画出图形-如何将EXCEL中的数据导入到CAD中,绘制成曲线...

    如何实现excel的数据与cad图形的关联 举个例 假如根据B2单元格中的半径画一个圆 : 打开EXCEL,在B2单元格中输个圆的半径100 按快捷Alt F11打开VBA编辑器并插入一个模块 引用C ...

  8. matlab提取数据画图,matlab提取excel表格数据画图-如何将Excel中的数据导入MATLAB并在MATLAB中画出图......

    在matlab上如何导入excel表格然后画图 工具:matlab 2018b 1.打开matlab,点击主页下面导入数据,可以导入excel数据,在此将自己命名的huitushuju文件导入: 2. ...

  9. matlab将数据输出到excel中,matlab数据输出为excel表格-如何把matlab中的数据导到excel表格中...

    如何将matlab工作空间的数据导出到excel 1.很简单的用xlswrite函数就可以了.首先打开matlab,输入你的代码 2.找到你要存放文件的位置复制绝对路径(致谢文件名的话就会存放在当前目 ...

最新文章

  1. Redis之intset(整数集合)
  2. App开发流程之加密工具类
  3. Windows Server 2016及System Center 2016正式商用
  4. 用 Visual Studio Code 在 macOS 上创建首个 ASP.NET Core 应用程序
  5. Linux 如何查看命令所在位置/查看命令文件所在位置
  6. 给自己的网址加上https,添加ssl证书(springboot项目)
  7. (0)PCIE接口目录(学无止境)
  8. Marco:Filecash全网算力增加的趋势,将形成FIC价格上升的良性循环
  9. 蓝桥杯 ADV-89 算法提高 输出九九乘法表
  10. keil c语言中断怎么写,如何利用keil C实现单片机中断功能
  11. 帆软高级函数应用之数(学)值函数
  12. 敏捷开发案例:用白板解决项目管理和团队沟通
  13. python如何将批量txt文本转成批量word格式
  14. windows中VMWare下安装Mac Os X 10.11踩坑记
  15. c#中 utm坐标转换经纬度坐标
  16. 1年赋能100家环保机构,阿里云发布“青山绿水”计划
  17. 大佬们抖音带货流水都过亿 普通人有什么抖音变现的好方式
  18. Kepserver EX6配置opc ua服务端 以及客户端
  19. python3 规则引擎_Ilog、Drools、Jess规则引擎的Rule Language 对比
  20. matlab 脱离mcr,MATLAB生成exe脱离matlab运行可执行程序

热门文章

  1. 电脑fps低怎么办_电脑想要英雄联盟玩的流畅,主要看哪几个方面?
  2. MATLAB编辑GUI界面
  3. unet实现区域分割
  4. CV中的经典网络模型
  5. 22条API设计的实践
  6. Java加密与解密的艺术~安全协议~单向认证服务
  7. linux安装汉语输入法,在linux中安装google拼音输入法
  8. mousemove事件java,three.js,补间相机和mousemove事件
  9. action在java_@Action(value=/login在java语句中是什么意思
  10. 经典php代码,HTML_php教程:经典PHP代码,经典循环例子 HTMLHEAD - phpStudy