怎样将Excel表中的内容批量导入到Word文档的指定位置啊?
发布网友
发布时间:2022-04-23 05:52
我来回答
共5个回答
热心网友
时间:2023-05-20 02:22
你的问题邮件合并就能解决,这个是百度上的答案
Microsoft Office邮件合并的操作方法:
第一步:准备数据源
这个数据源可以是Excel工作表也可以是Access文件,也可以是MS SQL Server数据库。一言蔽之:只要能够被SQL语句操作控制的数据皆可作为数据源。因为邮件合并说白了就是一个数据查询和显示的工作。这里,我以Excel为例。 下图是一个Excel工作表文件"DataSource",里面有一个工作簿"录取通知书",工作簿里面有三条数据记录,我们的任务就是把这三条记录按照指定的模板打印成录取通知书。 图一
第二步:准备模板
模板文件就是即将输出的界面模板,这里我以Word文档为例。 下图是一个模板文件"Template",就是录取通知书的大致样子(大标题和序列号我就省了啊)。 图二
第三步:邮件合并
打开模板文件template.doc,从"工具"菜单中依次选择"信函和邮件" >> "显示邮件合并工具栏",完毕之后工具栏上会多出一栏,就是邮件合并工具栏,如图,红色矩形框中的就是邮件合并工具栏。 图三 下面,step by step,follow me: 1.设置数据源 点击邮件合并工具栏上"设置数据源"的按钮(图三中第二个),选择"DataSource.xls"文件,单击打开,然后会再弹出一个"选择表格"的窗口,要求指定使用哪个工作簿,因为只有一个工作簿"录取通知书",直接点击确定,完成数据源设置。 2.插入数据域 这里,我以插入新生姓名为例。 2.a 将光标定位到要插入数据的地方(这里插入新生姓名,就放在文档开头"同学:"之前) 2.b 点击邮件合并工具栏上"插入域"的按钮(图三中第二个),在弹出的窗口中选择"姓名",然后单击"插入",如图: 2.c 单击关闭(MS Office这一点不知道是什么用意,不能一次插入多个域,插入完毕又不自动关闭弹出的窗口) 重复上述操作数次,依次插入其他元素(院系,专业,学制等)。全部完成之后,模板是这个样子的(为强调哪些数据是动态插入的,我将插入的数据域都用红色表示): 3.查看合并数据 单击邮件合并工具栏上"查看合并数据"的按钮(图三中"插入Word域"右边那个按钮),即可看到邮件合并之后的数据,工具栏上还有一些按钮和输入框可以查看前一条、下一条和指定的记录。
第四步:完成合并
到此,邮件合并的工作就基本结束了,可以直接打印了,你可以选择"合并到新文档"(适用于只有几十上百条记录)来把这些信息输出到一个Doc文档里面,以后直接打印这个文档就可以了,也可以选择"合并到打印机"(适用于成百上千条记录),并不生成Doc文档,而是直接打印出来。 下面是合并到新文档之后,新文档的效果图: 两条记录之间的黑线是分页标记。当然,如果打印成通知书还要调整版式,这个是排版的基本功,我只是演示怎么进行邮件合并,排版的咚咚我就不赘述了。 邮件合并功能非常强大,"插入Word域"的功能可以先对数据进行处理(逻辑算术运算格式化等)然后插入,比如要打印英语证书,可以设置分数小于60打印"不及格",60和80之间打印"及格",80以上打印"优秀".这些东西就由各位读者自行挖掘了,呵呵.
热心网友
时间:2023-05-20 02:22
可以用下列代码批量写入:
Sub test()
Filename = Application.GetOpenFilename _
(FileFilter:="word Files (*.doc),*.doc," _
& "Word Files (*.docx),*docx", _
Title:="请选择需要填充数据的word文件")
If Filename = False Then Exit Sub
arr = Sheets(1).[a1].CurrentRegion
Set wdapp = CreateObject("word.application")
wdapp.Visible = True
With wdapp.Documents.Open(Filename)
.Tables(1).Columns(1).Select
For Each cel In .Parent.Selection.Cells
n = n + 1
If cel.Range.Text = Chr(13) & Chr(7) Then
n = n - 1
Exit For
End If
Next
If UBound(arr) = n Then GoTo over
.Tables(1).Rows(n).Select
.Parent.Selection.InsertRowsBelow UBound(arr) - n
For i = n + 1 To UBound(arr)
.Tables(1).Cell(i, 1).Range = i - 1
.Tables(1).Cell(i, 2).Range = arr(i, 1)
.Tables(1).Cell(i, 3).Range = Format$(arr(i, 6), "percent")
Next
over:
.Save
.Close wdSaveChanges
wdapp.Quit
End With
End Sub
热心网友
时间:2023-05-20 02:22
导入进去还是以表格的形式显示么?可以按Ctrl+Shift+* 选中当前工作表的所有内容 然后粘贴进去,也可以插入→以文件的形式导入进去。
热心网友
时间:2023-05-20 02:23
看来你要用固定的格式套打不同的内容。
工具——信函和邮件——邮件合并——导入Excel——插入合并域——调整好位置——合并到新文档
热心网友
时间:2023-05-20 02:24
选中要导入的内容复制粘贴到word就是了,或者保存为另一张sheet,再到word里面插入就OK