ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 285023|回复: 822

[分享] 你究竟能跑多远—Excel的优劣势分析(原创)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2008-10-15 15:33 | 显示全部楼层 |阅读模式

你究竟能跑多远Excel的优劣势分析

我(惭愧鄙人的水平不高)最近看到,很多Excel新手非常迷信Excel,可以说到了盲目的程度,而很多高手往往突然拿出非常复杂的函数公式组合,其效果相当于一闷棍,不把新手吓晕誓不罢休!这有悖于循序渐进的学习规律,因此,我想把Excel的劣势和优势作一浅显的分析,让我们正确认识它,学习它,并驯服它与工作之中。

1  Excel与数据库产品之间的比较    Excel是一个电子表格程序,而不是一个数据库程序,这一点请大家一定要时刻提醒自己。一个数据库程序在数据存储和数据验证上花了大量的工作,而且通常有非常良好的结构化查询语言,SQL语句查询就是其中的一种。数据库程序通常可以存放的数据量是相当大的,而且数据之间的结构也非常复杂。这些都是Excel所不能企及的,从成本上来讲数据库产品的维护和开发要比Excel大得多。Excel和数据库程序在开发中的特点比较如下

 (1)数据量。一般而言,如果你的Excel工作表在一个月之内就可能突破10000条记录的话,这个时候建议你还是选用数据库产品,尽管在Excel和数据库之间可以进行数据转换,但是当Excel的数据量过大的时候,它的查询和计算的速度会明显下降。(但是使用一个小技巧,也可以将大量的数据拆分到逻辑上有明显区别的工作表中)。比如:一个小小的超市,10名收款柜台员每天接待200人每人10件商品,Excel立马倒下,根本不能施展手脚。

  (2)数据安全性。Excel提供了有限的安全性,它只能限制用户访问和修改的权限,但是无法对用户进行角色的管理,也不能对数据进行行级的访问限制。Excel在一些简单的破解程序面前毫无招架之力,无论你如何密码,我不多说。  

 (3)多用户管理。因为Excel程序是一个单机程序,所以一个Excel文件通常无法被多个用户同时管理。而数据库通常具备完整的管理控制台,可以方便多个用户分别对数据库进行同时操作。比如:还是前面提到的小小超市, 10人同时操作,Excel就派不上用场了。 

 (4)计算与数据建模。Excel的强大之处就是它的计算与建模能力。而数据库程序通常只能完成相对简单的运算和建模。

5跨平台性,这一点。可以说是Excel的软肋,因为Excel只能跨PC和Jmac两种平台,而大多数的数据库产品可以通过安装客户端的方式运行在任意平台上,但是如果你正在使用Excel,通常情况下,你的开发应该都在windows下进行.

2、Excel的最最优势之处:

(1)数据透视功能,一个数据透视表演变出10几种报表,只需吹灰之力。一个新手,只要认真使用向导1-2小时就可以马马虎虎上路。

(2)统计分析,其实包含在数据透视功能之中,但是非常独特,常用的检验方式一键搞定。

(3)图表功能,这几乎是Excel的独门武工,其他程序望其项背而自杀。

(4)高级筛选,这是Excel提供的高级查询功能,而操作之简单。非常超值享受。

(5)自动汇总功能,这个功能其他程序都有,但是Excel简便灵活。

(6)高级数学计算,却只要一两个函数轻松搞定。

3、学习Excel,我推崇的几项原则

(1)简单就是美,(好像是罗曼罗兰说的),Excel的许多功能都是高度集成化,手工能够简单操作几次成功,而往往我们向往追求一次搞成却不知道写下了几十甚至上百字的复杂函数。实在是买窦还珠,削足适履。

(2)多使用集成功能,数据透视表等等是操作非常简单而又功能十分强大的重型武器,用好它会使你感受到无比的快乐,学海苦涯快乐重生。

Exccl与VB和VC++的比较   

当完全掌握Excel的开发手段之后就能够了解,实际上Excel VBA开发在很多方面都能够满足需求。因为现在的Excel是一个完全的开发平台,它包括一个开发平台的所有要素:用户界面设计、逻辑设计,面向对象或面向过程的程序以及数据层。Excel甚至包括很多VB和VC所不具备的元素,如图表和数据透视表等。

   下面将分析这两种主流的编程语言和Excel的比较。

 ·从执行速度上来讲VC++编写的程序在执行效率上是最高的,VB其次,Excel的执行效率相对比较低。   

·VB的表单设计可以给开发者更多的控制,而且它支持OCX,这都是Excel所不能达到的,  

 ·VB的数据库功能相当强大,具备多种连结性与安全性相关的功能。

[此贴子已经被作者于2008-10-15 17:08:42编辑过]

评分

7

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-10-15 15:35 | 显示全部楼层

Exeel应用程序的功能区分  

 Excel应用程序可以完成相当多的计算任务,可以满足多种应用程序需求,从用户界面、逻辑设计、报表设计到最终的打印,Excel应用程序都可以在设计上满足开发者的需求。可以说在某种程度上,有的时候很难想象对Excel的深层开发会给我们带来什么。    但是在实际开发中,事实上一般都会选择使用Excel完成下面特定的任务,这也是开发中比较常用到的几种开发模式

·财务分析。这类应用程序通常分析用户所输入的数据,然后可以生成相应的预测模型,提供给决策部门作为参考。   

·报表类应用程序。这类应用程序充分利用了Excel的分析汇总功能和图表功能,程序的主要目的是生成周期报表。  

 ·工具类应用程序。这类应用程序通常用于提高用户的工作效率,例如提供数据转换与导入导出服务。

 Excel应用程序的结构区分   

在设计上,当明确了应用程序的功能和输入输出之后,下一步就需要开始着手决定应用程序的逻辑结构了,应用程序的结构由下面这些因素所决定:

·结构的复杂性。通常在结构上越复杂的应用程序,越容易扩展,但是会增加程序的复杂性,增加开发的周期。

 ·开发维护的成本。是否应当使用容易维护的结构,是否应当使用一般程序员都能理解的结构。

 ·安全性。应该设计什么样的安全性才能满足需求,不同的安全性需求可能会对开发结构来质的变化。

 ·分发模式。应用程序开发完毕之后,应该采用什么样的分发方式,是直接分发xls文件,还是要制作一个安装文件让用户自己安装。

·更新模式。Excel应用程序不同于Web应用程序,任何更改都需要让用户进行更新。这是非常特别的一个因素,它将会决定是直接开发xls文件更新,还是使用插件来更新Excel应用程序。

作为简单的应用,直接使用简单的过程就可以完成,但是对于复杂的应用程序,在结构上的一点变化就可能做到牵一发而动全身,如果结构设计上存在缺陷,很有可能会出现用户丢失数据或增加用户操作的种种程序缺陷。所以,为了避免不必要的损失,应当认真了解应用程序的结构区别,并在最适当的时候采取最适当的结构。俗话说,磨刀不误砍柴工,就是这个道理。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-10-15 15:36 | 显示全部楼层

几种应用程序结构,下面从无代码应用程序开始。

1  无代码应用程序    无代码应用程序事实上可以认为是任何使用的简单的Excel应用,它们的共同特点就是完全依赖Excel提供数据验证、单元格的格式化、数据计算、数据输出等功能,也就是Excel提供给我什么我就用什么,当用Excel建立了一个简单的输入与计算的xls文件的时候,你已经在不知不觉中在使用这种应用程序了。

无代码应用程序的优点是简单。但是它存在很多显而易见的缺点。首先你对很多对象都没有绝对的控制,而且数据验证、工作表函数都集成在工作表中,这部分的代码的管理就变得非常困难。对于今后的更新而言,替换工作表同时也会不可避免地丢失数据,而且这种应用程序结构不符合代码与数据分离的原则。这样的应用程序只适用于比较简单的需求。

   无代码应用程序适用于下列情况:

·该应用程序的生命周期很短,只在单机进行部署,而且不需要升级。

 ·最终用户在维护该代码的时候不需要了解VBA。

·最终用户的数量不能太多。

2、 自动化工作表    所谓自动化工作表,其意义仅为运行自动化过程的代码储存在工作簿内。这也是占比例最多的Excel应用程序。你可能会问这种应用程序为什么还要拿出来说明,其原因是,在后面提及的应用程序类型都是没有将程序代码存放在工作簿内的应用程序类型。为了理解后面提到的几种应用程序,应该重新审视一下平常开发的VBA应用程序的优点和缺点以及它的最佳用途。    相对于第一种应用程序结构,现在可以最大限度地发挥VBA代码的威力:可以将代码和数据进行分离,可以捕获Workbook和Worksheet事件,实现需要的功能,不一而足。

然而问题还是出在程序更新的时候,会遇到与前面相同的问题:在更新程序的时候不可避免会丢失数据。惟一可靠的可以保存数据的方式就是,将原来的数据复制一份,当工作簿更新完成之后,再把数据复制到新的工作簿,自动化工作表示用于下面几情况:   

作簿内包含针对此工作簿的特殊函数,

作簿程序更新时数据不需要被保留,

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-10-15 17:16 | 显示全部楼层

3、加载宏

 加载宏是一种特殊的应用程序,通常用来给Excel增加功能。这里面要特别指出的是,通过加载宏给Excel增加功能特指与应用程序无关的一般目的功能,例如,增加一个计算房屋贷款月还款额的函数。可以为Excel增加一个在加载宏中的工作簿,对用户而言它是不可见的,但是用户可以通过"宏"对话框来访问这些加载宏。

这些工作簿尽管对于用户不可见,而且其中包含的宏也无法在“宏”中可见,但是它们都可以通过VBA代码进行访问。如果希望这些工作簿成为普通的工作簿也很简单,只需更改工作簿的IsAddin属性就可以了。   

因为加载宏中的工作表对用户始终不可见,所以需要使用用户表单来和用户进行交互。通过使用用户表单,我们首先获得了更高级的用户界面控制,其次可以更好地实现用户数据验证以及实现更高级的错误处理。这样就可以进一步增强应用程序的可靠性和数据完整性。使用加载宏结构,可以通过使用注册表或者是ini文件来记录用户的设置,而不需要像以前一样记录在工作表中。实现这种分离的重要作用就在于现在可以将配置、数据与程序代码分离,当在更新任何一方的时候都不会影响到其他部分。

 加载宏是通过xla文件实现的,当在更新加载宏的时候,只需更改xla文件,然后进行覆盖操作就可以了,通过这种方式可以确保在更新程序时用户数据不会丢失。  

 加载宏通常具备下面的结构:

在Auto-Open(在应用程序启动时调用此事件)和Workbook_Open(在工作簿打开时调用此事件)中设置菜单项以及键盘快捷方式。然后将菜单项的OnAction属性设置为调用相应的过程。

 ·对于每个菜单项对应的过程放置在不同的模块中。

.在Auto-Close(在应用程序关闭时调用此事件)和Workbook-Close(在工作簿关闭时调用此事件)中移除菜单项,并释放键盘调用方式。  事实上,加载宏的世界不只如此,在实际工程中,还有用C API编写的XLL加载宏,或是由VB或VB6编写的COM加载宏

4  企业信息系统    企业信息系统,这个名称事实上并不准确,也并非是微软专门提供的一种VBA应用程序结构,但是这种应用程序和其他几种Excel VBA应用程序结构有着非常大的区别,那就是通过使用企业信息系统结构,用户甚至不知道他正在使用Excel编写应用程序,因为企业信息系统完全替代了Excel的用户界面,取而代之设计者设计的界面。这和用Visual Basic等高级编程语言设计出的应用程序没有什么不同。

企业信息系统听起来有玄奥,事实上它是通过大量的基础代码来实现的。通过配置Excel、设计单独的用户界面,并配合使用前面提到一些技术,就得到了企业信息系统

不可否认,企业信息系统对Excel的控制是前面几种应用程序所无法达到的,所以企业信息系统需要相对丰富的VBA知识。

 企业信息系统的用途也十分广泛。通过设计企业信息系统不仅可以最大限度地控制用户对数据和程序的访问,而且可以利用各种Excel的内置功能,如公式、函数、图表、数据验证等。因为企业信息系统十分强大,而且结构相当灵活,所以在设计企业信息系统的时候应当考虑周全。

 并非任何Excel应用程序都可以被设计为企业信息系统,企业信息系统因为同一般的Windows应用程序在外观上难辨真伪,所以我们要设置大量的Application属性,例如隐藏工具条和菜单等。因为Excel会自动记录对Excel属性设置的变化,所以记录Excel的初始设置并在应用程序关闭时恢复设置是每一个企业信息系统必须做的。概括起来,下面的步骤是Excel应用程序在设置环境的时候应该做的:

·删除所有Excel原有的工具条。

·提供自己的工具条,但是要禁止用户访问工具条"自定义"对话框。

·禁止Excel的快捷键设置(如Ctrl+V),并设置自己的功能快捷键

·将Application.EnableCancelKey属性设置为xlDisabled,这样用户就无法在代码执行期间强行中断。

在调试程序阶段,我们需要一个额外的变量将程序的属性稍加改动,以区分当前处于调试模式还是用户模式。当进入调试模式时,允许开发者使用Alt+F1l进入调试模式。在调试阶段不要设置EnableCancelKey属性,否则程序代码无法中断,调试将无法进行。还可以进一步利用这个变最显示各种开发过程消息。    说了这么多,现在来归纳一下企业信息系统的结构:    ·启动部分    ·记录Excel设置,并适时恢复。    ·配置并锁定Excel应用程序。    ·移除Excel工具条。    ·处理Excel的快捷键。    ·后台工作表    ·显示用户表单,或是应用程序图标。    ·多个表单模版(可用于用户输入数据,或是报告模版)。

小结,前面首先分析了Excel在实际工程中应用的价值,让我们能够全面地衡量在工程中使用Excel作为开发工具是否恰当。我们看了其他几大类的产品作为比较,可以看到,Excel在整个开发产品的光谱中,占有比较独特的地位,但是总地说Excel适合于开发单机版、访问量与开发维护量都不是很大、对数据有分析建模功能的应用程序。当然,使用Excel作为开发工具还有一个巨大的优势就在于Excel的用户群巨大,可以使应用程序的用户大大缩短学习周期。

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2008-10-16 08:18 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2008-10-16 08:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
很好,学习了

TA的精华主题

TA的得分主题

发表于 2008-10-16 12:35 | 显示全部楼层

呵呵,是我给的花哟,呵呵。

楼主好像是个程序高手

TA的精华主题

TA的得分主题

发表于 2008-10-16 15:13 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2008-10-16 15:29 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2008-10-16 16:04 | 显示全部楼层

学习了.特别是加载宏,至今还不知道是怎么回事.

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-23 17:45 , Processed in 0.050003 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表