宝哥软件园

Excel数据批量写入Word

编辑:宝哥软件园 来源:互联网 时间:2021-09-22

关于Excel和Word数据交互的基础知识,前面有两篇文章。这里是一个实际遇到的综合案例,基本上结合了前面的知识点。

一、实际案例介绍。

这种情况需要将Excel数据批量写入Word。需要写的如下图所示,红框里的需要写成word。

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

写完后的效果如下:

第二,理念和代码。

思路:循环打开Excel,先写订单号,工厂付款号,客户付款号。第二步是通过find函数确定长段号表的具体大小(以便循环写入数据到Word中)。最后,保存并关闭word。

具体代码如下:

子提取数据()

申请。屏幕更新=假

set doc=CreateObject(" word . application ")

医生。可见=真

设置wd=doc。文档。添加

PTH=application . getopen filename(" file(*)。*), *.*、"请选择一个文件",True)。

对于I=1到UBUND(PTH)'循环浏览所选工作簿。

设置wb=工作簿。将打开的工作簿分配给对象变量WB。

Strr="订单号" wb。工作表(1)。[b3] vbTab“客户付款编号”wb。工作表(1)。[b5] vbTab“工厂付款编号”WB。工作表(1)。[B6]“连接要写入的数据,并将其分配给变量strr。

将订单号、客户付款号和工厂付款号写入word。

和wb一起。工作表(1)

Col1=。列(1)。查找(“工厂编号”、“xlvalues”、“XL整体”、“xlbycolumns”、“xlnext”、“true”、“true”)。“row”定位工厂编号和总字符数,以确定需要插入word文档的表格的大小。

Col2=。列(1)。Find ("total ",xlvalues,XL整体,xlbycolumns,xlnext,true,true)。划船。

设置myrange=doc。活动文档。内容

我的天使。collapse direction :=wdcollapse end '折叠已经写入的内容。

医生。文件(1)。桌子。添加myrange,col 2col 1,11 '在word中插入新表格。

医生。文件(1)。表(一)。style="grid type " '表类型是网格类型。

对于r=列1至列21

Arr=。范围(“a”r)。整排。范围(“a 1: k1”)‘将excel表格中的数据循环写入word表格。

对于每个ar In arr

n=n1’将行中的单元格值循环写入字表中的单元格。

医生。文件(1)。表格(一)。范围=ar

然后

然后

n=0

以…结尾

Wb。close false“写入数据后,关闭打开的工作簿”,然后打开下一个工作簿。

然后

文件(1)。另存为此工作簿。路径“ data.docx””循环打开所有工作簿,并在写入数据后将打开的word文档保存到代码工作簿路径。

医生。退出退出程序。

申请。屏幕更新=真

末端接头

第三,知识点。

创建新表

代码包括创建新表和编写数据。这里有一个简单的例子供参考。(这段代码直接在Word VBA中运行。如果需要在Excel中操作Word插入表,需要新建一个Word程序对象,属于之前的基础知识。)

Sub创建一个新表来写入数据()

活动文档。表(1)。删除

设置tb=活动文档。表格。添加(选择。范围,1,3)

肺结核。Style="网格类型"。细胞(1,1)。range=“number”。单元(1,2)。Range=“文件名”。细胞(1,3)。Range="extension "。

.行.最后.选择

选择。插入行低1

带. Rows.Last。细胞(1)。范围=1。细胞(2)。范围=2。细胞(3)。范围=3

以…结尾

以…结尾

末端接头

代码运行如下:

更多资讯
游戏推荐
更多+