当前位置:首页 期刊杂志

Excel行数据批量输出为Word样式文档

时间:2024-05-04

连春来

摘要: Excel行数据批量输出为Word样式文档步骤;VBA宏代码的简单应用

关键词:创建表;创建宏代码 ;自动复制表;程序创建引用

中图分类号: TP311      文献标识码:A

文章编号:1009-3044(2020)36-0192-02

1 提出问题

Excel表是行列结构的,优点是方便筛选、排序、计算、分析、统计功能,但列数据比较多时,就不够直观,打印、查看都不方便,如表1(只截取部分表):

Excel表还可以有更直观的呈现方式,每行数据输出为Word样式文档,如表2(只截取部分表):

上述行列表、直观表各有优点,如何在行列表中操作数据,后输出为直观表?比如某表有400行的调查数据,全部输出为400张Word样式文档,如何来提高工作效率?

2 分析问题

批量输出的可行性分析:

1)两种表之间可通过单元格引用,形成一一对应关系;

2)输出表通过复制,能生成多表,可借助VBA宏代码实现快速自动复制;

3)输出表的每一单元格的引用,可以通过VBA宏代码的循环替换生成一一对应行列表单元格。

4)通过对输出表进行选择性粘贴,解除单元格的引用,生成不带公式的表。

3 实例应用

3.1 第一步,R1C1引用样式设置(Excel2003为例)

在Excel主界面,默认使用“A1”格式为单元格引用,现转换为“R1C1”引用样式,目的是为单元格行列数字替换做准备。设置步骤:Excel菜单工具→选项→常规,在“设置”中单击“R1C1引用样式(C)”前面方框,最后单击确定,单元格数字引用样式完成设置,如“R2C5”, “R10C15”。

设置前,列表示为A,B,C,D,E,F…,列是用字母表示,如表3。

设置后,列表示为1,2,3,4,5,6…,列是用数字表示,如表4。

3.2 第二步,创建设计表和数据表

1)创建设计表,表名为“设计表”,样式如表5。

2)创建数据表,表名“sheet5”,添加如表6内容(为尽可能多显示,数值用数字代替)。

3.3 第三步,k值替换

用“ #Sheet5!R?yC?z&"" ”替换设计表3.2.1中的k值,其“R”为行,“?y”表示行数, C为列,“?z”表示列数(如Sheet5!R1C2,表示引用的是表“Sheet5”的1行2列的数据),&""表示连接空格(目的是数据显示为字符格式),替换后如表7:

3.4 第四步,创建VBA宏代码模块--用于复制表

创建VBA宏代码模块,用于复制表(模块名称为“表添加()”),VBA宏代码如图1。

动态参数说明:A1:R36  为复制区域(不同的表,区域会不同,是动态的);

运行此模块后,复制成5张一样的表。

3.5 第五步,创建VBA宏代码模块--用于单元格行列引用参数替换

创建用于单元格行列引用参数替换的VBA宏代码模块(名称为“表行列增加()”),如图2。

动态参数说明:

运行此模块后,设计表第一张表替换后如表8, 第二张表替换后如表9。

设计表第一张表的单元格,对应sheet5表第二行的相应单元格;

设计表第二张表的单元格,对应sheet5表第三行的相应单元格;

设计表第三张表的单元格,对应sheet5表第四行的相应单元格;

依次类推,形成设计表的各单张表与sheet5表的行有一一对应关系。

3.6 第六步,设计表生成引用公式(如“#sheet5!R2c2&""”生成引用“=Sheet5!R2C2”)

由Excel菜单“编辑” →“查找替换”, 把“#”替换为“=”,生成引用公式,如设计表“R3C4”单元格的值引用了表“Sheet5”的“R2C2” 单元格的值,表2对应表1。

至此,Excel行列结构数据表“sheet5”批量输出为Word样式文档“设计表”,转换完成。

4 注意事项及相关问题

1)单元格不能转换生成公式时,单元格设置成常规格式;

2)设计表要脱离公式引用,可全选表格,在当前表右擊,选择性粘贴;

3)直观表转行列表,简单多了,反引用二行,向下拉就成了。

【通联编辑:李雅琪】

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!