一起学Excel专业开发02:专家眼中的Excel及其用户

2019-07-19 14:47:20 浏览数 (1)

学习Excel技术,关注微信公众号:

excelperfect

对于大多数人来说,使用Excel来做的工作就是在单元格中输入数据,进行一些格式化制作成报表输出,在这个过程中,可能会使用一些公式,可能会使用图表展现数据,也可能会使用VBA进行一些自动化数据处理工作。

然而,越深入地使用Excel,会越多地了解Excel,就会发现Excel不仅仅这些,特别是看到精心设计制作的、清新的工作表,看到认为是专业的程序软件开发的作品而实际上就是Excel时,会彻底颠覆你对Excel的认识。其实,就如Excel一样,眼前经常用的就是最强大的,只是你没有认识到,没有认真研究而了解她,没有将她发挥到极致的想法。

在专家眼中,Excel不只是普通的电子表格程序,更是能力非凡的应用程序开发平台。在专家眼中,Excel已经为我们的应用需求构建了完整丰富的基础,Excel中的任何部分都是作为程序组件或元素来对待的,只等着我们充分运用她们来扩展Excel的能力,方便地满足多种多样的需求,而无须从头开始。

1. 工作表:用于展示

在日常工作中,我们会很自然地在工作表单元格中输入数据,进行数据分析和处理,制作报表输出,这是我们通常的做法。Excel丰富的内置功能,已让我们的这种做法非常容易。

我们需要进一步做的是提高电子表格界面设计能力,灵活熟练地运用Excel提供的功能,充分发挥并拓展Excel所提供的功能,在工作表中添加一些结构,使其变为一个简单易用的用户界面。例如,下图1所示的工作表,充分利用Excel自身的功能设计出了功能强大的用户接口。

图1

这里使用了格式设置、名称、样式、单元格批注、数据验证、条件格式等常用技术,创建了清晰的界面,提供了级联列表、数据检验、动态显示、错误提示等功能。简单直观,引导用户正确完成输入数据的填报工作。

2. 工作表:用于程序数据的存储

在程序代码中,在程序代码处理中,经常要用到一些数据,而工作表就是一个天然的数据存放地,我们可以在工作表单元格中存放数字、文本、表格或图片,供程序使用,而VBA程序代码可以方便地访问这些数据。同时,修改维护这些数据也非常简单。

例如下图2所示,创建工作表数据驱动的用户窗体。

图2

这里的向导2中列表框项目数据读取的是工作表中列A中的数据,在向导2中选取“Client Detail”后,向导3中会出现该指定项报表的选项,并读取工作表中相应单元格中的数据作为其复选框选项。用户窗体根据用户的选择读取工作表中的相应数据,并动态添加相应的控件,使用户窗体更加灵活且功能更强大。

3. 工作表:一种声明式编程语言

我们用程序员的眼光来看Excel工作表,单元格存放着变量的值,单元格地址就是变量,公式或函数就是语句,通过引用单元格来获取或者计算得到相应的值。

也就是说,我们可以将Excel工作表公式当作是一种编程语言。IF函数可以等同于条件语句,Excel中的循环引用和迭代计算等功能的巧妙运用,可以等价实现循环结构语句。

Excel工作表就是一个实时的语言编辑器,在工作表单元格中输入数据和公式后,Excel实时给出结果,并根据公式所依赖的单元格的变化实时更新数据。

Excel更擅长数字计算,VBA擅长通用的编程,将两者合理结合运用,可以开发出高效的应用程序。

4. VBA与用户窗体

VBA是一种专业的编程语言,内嵌于Excel中。在Excel提供的VBA语言专业编辑器(VBE)中,不仅可以使用VBA来充分Excel发挥更大的优势和威力,而且可以利用用户窗体设计专业的交互界面,扩展Excel的能力。《Excel专业开发(第2版)》中的主要内容就是讲解VBA高级技术及应用程序设计和开发的专业方法的,有兴趣的可以与我一起解读这本书,提升编程实用技能。

5. Excel对象模型

我们在Excel中进行的各种操作,实际上是对相应对象的操作,例如常用的单元格操作,包括在单元格中输入数据、设置格式等,就是对单元格对象的操作。Excel中对象经过层层组织,构成了Excel对象层次模型,其层次结构如下图3所示。

图3

Application对象代表Excel应用程序本身,有一个工作簿集合对象(Workbooks集合对象),包含所有打开的工作簿对象(Workbook对象),而每个Workbook对象有一个工作表集合对象(Worksheets集合对象),包含工作簿里所有的工作表对象(Worksheet对象),而每个Worksheet对象又包含单元格区域对象(Range对象)。

通过对象模型,我们可以编程实现几乎所有在Excel工作表界面中能够完成的功能。而这些对象丰富的属性、方法和事件可以使得一些非常复杂的应用程序开发变得相当简单,开发者重点要考虑的是何时及如何将各种功能有效地组合在一起,而不是重新开发这些功能。

以上,就是Excel为我们编程开发提供的基本组件。

那么,专家眼中的Excel用户是怎么分的呢?根据使用Excel与VBA的经验和所掌握知识的程度,可以把Excel用户分为五类。

1.Excel初级用户:将Excel工作表当做存放数据、报表或进行简单计算的工具,并且随着Excel使用经验的增加,其工作簿也会变复杂,会包含大量的工作表公式与函数、图表和数据透视表等。

2.Excel高级用户:熟悉Excel的各种功能,知道在何种情况下使用何种功能,能够根据需要创建复杂的工作表,能够解决工作表使用过程中遇到的问题,会使用VBA但并不专业。

3.VBA开发人员:精通VBA,在其工作簿中广泛使用VBA代码,相信所有问题都能用VBA解决,但因为对Excel缺乏充分的了解,所以不能很好地利用Excel的特性。在判断何时使用Excel解决问题,何时使用VBA解决问题,以及何时将两者结合来解决问题时,缺乏经验。

4.Excel开发人员:利用大部分Excel内置功能并适当加入VBA代码是他们解决问题的常用方式,但不愿意使用其他语言或编程工具来改进自已的Excel解决方案。

5.专业Excel开发人员:能够设计和开发各种基于Excel的应用程序,以Excel为核心,根据情况灵活地使用各种应用程序和编程语言,包括第三方ActiveX控件、Office自动化技术、Windows API调用、外部数据库以及各种独立编程语言和XML技术等,所开发的程序高效、易用,具有很好的健壮性、可维护性和安全可靠性。

你属于哪一类?

vba

0 人点赞