基于VBA的Excel数据对Word文档的自动转换
2015-07-24李逦常广炎
李逦 常广炎
摘要:Excel作为Office应用程序包中的一员,主要功能是针对于电子表格的各种处理。Excel提供了数据库技术、文字编辑技术、专业格式化技术、图表技术、专业web发布和查询技术,并且保存在Excel中的数据也可以被其他Office应用程序调用。该文以一个例子说明通过Excel VBA将数据传递给word软件并自动生成文档的方法。
关键词:Excel;VBA;自动转换
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2015)14-0197-02
BA即Visual Basic for Application,是新一代Windows应用软件的通用控制语言。VBA起源于VB(Visual Basic),但它是一个对应用程序没有任何限制的独立工具,VBA不仅可以作为一个宏语言使用在应用程序中,还保留了一个可以在应用程序之间操作的开放编程工具用来作为结合层。使用VBA编写的程序可以复制到VB中,稍作改动即可在VB中编译,作为VB程序运行,用来控制其他程序。
VBA是Microsoft Windows应用软件通用的宏控制语言,语法简单,可直接运用相关软件(Word、Access、PowerPoint)的各项强大功能。并且,Excel VBA与Office软件包中其他软件的控制关系,使得VBA不仅可以控制Excel,也可以控制Word、Access等这些包含有对象库的应用程序;同时,绑定在Excel中的VBA不是唯一与Excel对象库通信的语言,还可以使用宿主于Word等其他应用程序中的VBA控制Excel[1]。
Excel包含的众多对象构成了一个有机整体。其中,应用程序(Application对象)包括应用程序的各种选项以及当前活动的对象,位于最上层,表示整个Excel应用程序。Application的下层包括工作簿集合(Workbooks对象)、窗口(Window对象)、对话框(Dialog对象)等; Workbooks的下层又包括工作表(Worksheets对象)、图表(Chart对象)、名称(Name对象)等。不同的对象有着不同的属性和方法以及对应的事件,如工作簿集合Workbooks对象有Application、Count、Item等属性;有添加集合(Add方法)、关闭集合(Close方法)、打开集合(Open方法)等方法;工作表Worksheets对象有Change事件、Activate等事件。VBA可以通过不同的操作对象的事件来激活不同的应用程序;可以通过不同的方法完成不同的功能;也可以通过修改不同对象的属性来完成特定的工作[2]。
本文主要研究在Excel工作表中的数据,如何自动转换到Word文档中,并以指定字段为文件名存储的方法。
1 Excel工作表的设计
本文所使用的Excel工作表为某公司的销售清单(如图1所示),记录了该公司每一笔订单的详细情况,包括订单编号、订货日期、发货日期、运费、联系人、地址、城市和地区等。现需要以工作表中“地区”字段为分类条件进行统计汇总,得出各地区运费情况,并在工作表所在磁盘路径自动生成以“运费情况-地区”为文件名的Word文档。
Excel中可以通过数据透视表对数据进行汇总。数据透视表是Excel中提供的数据分析处理工具,通过向导可以对平面的工作表数据产生立体的分析结果,可以将工作表中数据的排序、筛选和分类汇总等操作结合到一起,通过转换行或列来查看源数据的不同汇总结果。数据透视表可以帮助用户重新组织和统计工作表中的数据。
在当前的销售清单工作表中,选定“地区”字段作为分类依据,两次对“运费”字段进行计算:首先对运费进行“求和”运算,得到各地区运费总和;再对运费进行“占总和百分比”运算,得出各地区运费所占总运费的比率。根据数据透视表所得数据创建新的表格区域作为Word文档的生成的源数据,以“华中”地区为例,使用VLOOKUP函数得到该地区运费总和以及运费比率两行数据(如图2所示)。
在“销售清单”工作表中添加“生成Word文档”按钮,在标准模块中编写VBA代码,自定义子过程WordCDObject,并在命令按钮的Click事件中调用子过程WordCDObject。
2 Word模板的设计
Excel可以根据现存的Word模板自动生成Word文档。为了让Word文档有统一的转换输出结果,在编写VBA代码前,用户可以自行创建Word模板,将该模板中几个重要的字段设置为书签(如图3所示),当使用Excel生成Word文档时,可根据书签对应的不同内容动态显示文档相应字段。
当用户点击Excel工作表中“生成Word文档”按钮,即可根据“地区”字段生成相应的Word文档,如图4所示。
4 结论
本文以一个例子说明通过Excel VBA将数据传递给word软件并自动生成文档的方法,并了解保存在Excel中的数据被其他Office应用程序调用的方法。为从事数据处理的用户提供一种思路,并简化工作中的操作过程,提高用户的工作效率。
参考文献:
[1] 李辉,郝艳芬,支颖.office高手-Excel2003办公应用[M]. 人民邮电出版社,2006.
[2] 常广炎,杨彬. 基于Excel VBA 的数据处理软件开发[J]. 电脑知识与技术,2014(8).