电脑教程
位置:首页>> 电脑教程>> office教程>> Excel数据批量写入Word

Excel数据批量写入Word

  发布时间:2022-04-18 23:40:05 

标签:excel图表制作,excel常用函数,excel数据透视表,Excel教程

之前有两篇文章过Excel和Word数据交互的基础知识,这里说个实际遇到的综合案例,基本上将之前的知识点结合起来了。

一、实际案例引入

这次遇到的案例需求:将Excel数据批量写入Word。需要写入的内容如下图所示,红色框里的内容是需要写入word的。

Excel数据批量写入Word

我这里有很多个excel文件,每一个都需要打开把数据写入word。

Excel数据批量写入Word

写入之后的效果如下:

Excel数据批量写入Word

二、思路及代码

思路:循环打开Excel,先写订单号、厂款号、客款号。第二步需要通过find函数确定长款号表格的具体大小(为了将数据循环写入Word)。最后保存并关闭word。

Excel数据批量写入Word

具体代码如下:

Sub 提取数据()

Application.ScreenUpdating = False

Set doc = CreateObject(“word.application”)

doc.Visible = True

Set wd = doc.Documents.Add

pth = Application.GetOpenFilename(“文件(*.*),*.*”, , “请选择文件”, , True)

For i = 1 To UBound(pth) ‘循环打开选择的工作簿

Set wb = Workbooks.Open(pth(i)) ‘把打开的工作簿赋值给对象变量wb

strr = “订单号码” & wb.Worksheets(1).[b3] & vbTab & “客款号 ” & wb.Worksheets(1).[b5] & vbTab & “厂款号” & wb.Worksheets(1).[b6] ‘将需要写入的数据连接起来赋值给变量strr

doc.ActiveDocument.Content.InsertAfter Chr$(13) & strr ‘将订单编号、客款号、厂款号写入word

With wb.Worksheets(1)

col1 = .Columns(1).Find(“厂款号”, , xlValues, xlWhole, xlByColumns, xlNext, True, True).Row ‘定位厂款号跟合计字符,为了确定需要插入word文档中表格的大小

col2 = .Columns(1).Find(“合计”, , xlValues, xlWhole, xlByColumns, xlNext, True, True).Row

Set myrange = doc.ActiveDocument.Content

myrange.Collapse Direction:=wdCollapseEnd ‘折叠已经写入的内容

doc.Documents(1).Tables.Add myrange, col2 – col1, 11 ‘在word中插入新的表

doc.Documents(1).Tables(i).Style = “网格型” ‘表格类型是网格型

For r = col1 To col2 – 1

arr = .Range(“a” & r).EntireRow.Range(“a1:k1”) ‘循环将excel表中的数据写入word表格中

For Each ar In arr

n = n + 1 ‘将所在行的单元格值循环写入word表的单元格中

doc.Documents(1).Tables(i).Range.Cells(n).Range = ar

Next

Next

n = 0

End With

wb.Close False ‘数据写入完毕,关闭打开的工作簿’接着打开后面一个工作簿

Next

doc.Documents(1).SaveAs ThisWorkbook.Path & “\数据.docx” ‘将所有的工作簿循环打开,写入数据完毕,保存打开的word文档到代码工作簿路径下

doc.Quit ‘退出程序

Application.ScreenUpdating = True

End Sub

三、知识点

新建表格

代码中涉及到新建表格并写入数据的地方,这里给一个简单的例子作为参考。(这个代码直接在Word VBA中运行,如果需要在Excel中操作Word插入表格,需要新建Word程序对象,这属于前面的基础知识)

Sub 新建表格写入数据()

ActiveDocument.Tables(1).Delete

Set tb = ActiveDocument.Tables.Add(Selection.Range, 1, 3)

With tb

.Style = “网格型”

.Cell(1, 1).Range = “编号”

.Cell(1, 2).Range = “文件名”

.Cell(1, 3).Range = “扩展名”

.Rows.Last.Select

Selection.InsertRowsBelow 1

With .Rows.Last

.Cells(1).Range = 1

.Cells(2).Range = 2

.Cells(3).Range = 3

End With

End With

End Sub

代码运行效果如下:

Excel数据批量写入Word

0
投稿

猜你喜欢

  • 由于工作的原因,经常需要用到Word软件进行文档的编辑排版。为了让文档内容更加的丰富多彩,常常需要在文档中加入一些诸如:波浪线、双直线、虚线
  • 很多小伙伴们在需要编辑论文等内容时都会选择使用Word文档这款软件,在其中我们可以进行各种专业化的文文字编辑和处理。比如我们可以在其中插入一
  • word增加一页方法一:步骤一:首先打开要插入空白页的Word文档,如下图所示:    步骤二:鼠标定位于要插入空白页的
  • 如果要给一批办公文档的文件名前面都加上数字序号,除了一个接一个地手动添加更名外,还有什么方便的办法吗?其实很简单,利用记事本和Excel就能
  • 有时候需要在每页上都显示表头,这样好查看数据,下面我们来看一个练习;1、启动Excel1)点击“开始-所有程序-Microsoft-Micr
  • 在平常的工作当作,我们难免会遇上Word打不开的时候,那么我们应该如何解决这个问题呢?以下是小编为您带来的关于Word2003文档打不开,希
  • Excel怎么设计条形码 ? Excel中有有很多控件,今天我们就来看看使用其中的控件制作二维码的方法,制作过程很简单,需要的朋友可以参考下
  • 1、去除默认的输入法: 打开选项窗口,点击其中的“编辑”选项卡,去除最下面的“输入法控制处于活动状态”前的对号,点击确定。重新启动Word后
  • 如何去掉Word中的空行?下面是小编为大家精心整理的关于如何除掉Word中的空行?希望能够帮助到你们。方法/步骤1打开word20072单击
  • 下面小编就为大家介绍word2007给文字添加下划线和着重号方法,有需要的朋友可以过来参考一下,一起来看看吧添加下划线,着重号是为了特别突出
  • Win10如何强制删除流氓软件?我们在电脑中安装一些软件的时候总会遇到一个软件捆绑着好多流氓软件的情况,这种软件非常恶习,一旦进行安装,就是
  • word启动时自动显示打开窗口,大多情况下启动Word后第一件事就是执行“打开”命令,何不让Word一启动就自动显示“打开”对话框呢?这样我
  • Excel表格数据的筛选和排序,我们在日常工作中经常用到,这个技巧在对多数据进行规律性查找时尤为重要。因此熟练掌握这个Excel技巧可以让我
  • 在Word中的自由旋转就是将所选对象旋转至任意角度。以下是关于自由旋转的用法,希望小编整理的对你有用!下面以在Word 2010软件中旋转自
  • Word文档中如何调整页面顺序?Word是我们常使用的办公软件,在我们编辑word文档的时候,有时因为页面顺序错误需要调换顺序,那么在Wor
  • Excel斜线怎么画?常常制表的朋有都应该知道,在Excel中制表经常会给Excel表格加斜线,这斜线是如何加上去呢?下面就教大家给Exce
  • Excel2016柱形图怎么使用外部图片?excel中我们插入图表的时候,想将柱形图的图形换成外部的图片。该怎么替换呢?下面我们就来看看详细
  • Word2013文档中怎么插入网络视频?Word2013文件中需要引用网络中的视频,该怎么办呢?下面我们就来看看Word2013插入网络视频
  • 很多朋友不清楚Word2016怎么显示空格符号?下面小编给大家带来Word2016空格符号设置方法,需要的朋友可以参考下Word2016中,
  • Word水印功能可以给文档中添加任意的图片和文字作为背景图片,这也被我们称之为“水印”。不仅如此,我们还可以将文档背景设置为任意颜色或各种精
手机版 电脑教程 asp之家 www.aspxhome.com