时间: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)直观表转行列表,简单多了,反引用二行,向下拉就成了。
【通联编辑:李雅琪】
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!