ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

你眼中的VBA?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-11-26 16:51 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
                                                    你眼中的VBA?
什么?我眼中的VBA?你眼中的VBA?!
乖乖,你谁呀?VBA领域的一个“老菜”,还奢谈什么“眼中的VBA”!——你懂VBA吗?有什么资格在此“摆老谱”,妄谈“VBA"!!
是的,若论起资格和资历,在下自惭形秽,无言以对!!
回首涉足VBA近一年来的历程,我还真找不到令别人佩服、令自己自豪的理由来——除了坚持不懈发、跟帖,一如既往的对VBA的痴迷!奈何年龄不小,智力有限,领悟不快,空有一腔热情,愧对与进步不相对称的时间、和几近高级的名不副实的中级称号。Excel的技术水平却至今还游离在VBA门里门外……坦白地说,我就是一个实实在在、不折不扣的EH坛的VBA半吊子!
鉴于“半吊子”的水平和的身份,不敢妄谈什么“经验”,原先,我想以“我眼中的VBA”为题,怕引起误解,结果,便以“你眼中的VBA”取而代之,兼有愿大家参与进来,谈谈自己学习VBA的经验和感受,既是自己对过去在VBA道路上默默而执着走过的路程的回复和总结,也是以一个过来者的身份,给即将踏入或刚刚起步在VBA道路上新伙伴的一点启示吧!
先侃侃VBA之于本人的看法。
一、VBA首先是工具,然后是知识。
我学VBA主要是源于,办公自动化虽然叫了很多年,在我们这儿偏僻落后的山城小县,虽很多部门单位配套了不少的电脑,但很多的办公领域,纯手工操作——“人做牛事” 仍然大行其道,至于那些“半手工半机械”的,已经是“先进”至极了!!
比喻说,我们学校,很多老师(包括学校管教务的),把Excel当作形同word环境下插入的表格,纯手工操作。至于,参与计算,只会“A+B=”这种我们小学就会的那种基础的算式!!什么这公式那公式,听起来新鲜。VBA,还有种东西?没听说过,更没看人家用过,扯淡!!
我用VBA有一年了,我使用的电脑,因为VBA代码的BUG,经常出现问题,而其他和学校教务处的电脑却有幸免受这些方面的麻烦,你说,这倒是微软的幸,还是不幸呢?
我试着想,微软投那么多的人力物力和财力,这么多年来开发维护和发展这套办公软件,在办公自动化如此发达的今天,难道就是被赋予这样的使命?
带着既悲哀有好奇的初衷,我摸上了VBA这块全然无知的园地。我于是想象,把每天能够用电脑办公软件(主要是office)做到的事情,化作一个个的步骤;又将每个步骤要达到的要求,具化为一个个的问题,百度或者在EH网发帖求助。因为是零起步,因为是外行,以至于在求助帖中,难免说些行外话,引来一些善意或恶意的“笑”;求助无果的情况下,我会下很多很多的临近的实例,仔细揣摩,套用或模仿行家的一些套路:或对源代码进行删减增补,或试着写一些稚嫩的代码,测试;不效则又上网求助,然后等在电脑前等消息,就像一个渔友,抛竿后心情忐忑的静守在河边……所有这些,无非是将眼前的工作自动化。遇到一些好心的有耐心的EH,我会得到一个某项操作中关键一步的很完整的代码。比喻在设计编位程序中,面对学生千差万别的情况和家长不同的需求,我有三种不同的方案设计:
A、按成绩或综合表现的名次摆位,一个名次关联教室里一个固定的位置。这个设计主要是照顾优生。你知道,学校是培养人才的地方,学校的生命力和声誉全在于升学率,基于压力,我们常常不得不改变公平的原则,确保优生优座。
B、半随机编位。——在相对公平的前提下,适当开个“后门”,搞点“舞弊”,照顾那些事出有因的学生;或对那些很难改变,这次却找上门来,要求编个好位的学生,卖个人情,寻机进行改化教育;出于人道,个别身残的学生自,自然不在其外。对这些学生,让他们座位对应的编号在一个可控的相对较好的范围内随机,确保照顾到位。
C、全随机状态。自然是对那些扯皮的家长的“妥协”,让他们那些调皮的孩子有机会坐上好的位置。
这三个方案,我几乎研究了很长时间,设计、提问、发帖、测试、在发帖、在测试……这过程中,得到了很多好心人的帮助,一个很幼稚但又很实用的程序终于完成。
这些代码,凝结了很多知名和不知名的好心人的努力,我不敢独享,分享出来。但有人颇有微词,意思是某一环节是别人的成果,不该分享出来。这些朋友误解了我的意思:我分享这些代码,既不为名也不为利,无非就是面对一些,解决一个实际问题,有何不可?难道,学VBA仅仅就是显摆吗?除了这个就没有其他的意义?
VBA之于我,就是工具,我要用VBA解决实际工作的问题,解决办公中能够实现自动化的需求,这应不应该?分些想出来给那些有同样需求的朋友,是否可以?
有了需求,就有了探索和研讨的动力,又在研讨中,积累、比较、消化各类知识,逐渐将同一个要求不同的解法汇集成块,融汇成自己的知识,内化为能力。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-26 16:53 | 显示全部楼层
留着,待续中……

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-29 12:37 | 显示全部楼层
                                    VBA不是万能的,没有VBA是万万不能的

经常使用office的办公人员,一旦接触了VBA,感受到它功能的强大,享受着它所带来的便利性、能动性、机动性、灵活性,使本来很繁琐沉重的重复式劳动变得简易高效,便有种相见恨晚的感觉。的确,在office特别是Excel中,VBA的作用是不可替代的。譬如,如果你每天都有一项相同规格和要求的统计、制表、分发、打印等工作,并且这个工作必须在每天固定时间完成,如果手工完成,感觉繁琐累赘乏味;但如果你交给VBA,就用不着你再操心了,省得你有更多的时间用来休息或用来思考、优化和完善其他的工作,高效省心,让人倍感惬意。
然而,是不是所有的事情都可以用VBA解决呢?答案是否定的。
那么,在什么样的情况使用excel函数,什么情况下使用VBA呢?
下面就以我的成绩单制作系统为例,谈谈个人的一点理解和体会。
我的成绩单制作系统是这样设计的:
A、数据源。因为成绩单的数据必须真实全面。所以要有多个表格来记载各种数据,同时,又必须将各种数据,进行各类统计和计算。初步统计和计算,在每张表格的后面进行,而这些计算和统计全部用函数完成。
B、汇总表。这是将各个表格中初步统计的结果,汇总到一个表格上来,这个表格担负着各表格数据和成绩单数据的桥梁作用,这张表格,全部由函数完成。
C、成绩单界面。将汇总表上的数据,根据成绩单的主人的不同,分别汇聚到成绩单界面了。
其中A主要用sum,sumproduct,if,count,countif,rank,average等等函数;B、C主要使用vlookup,index…match等查找函数,如果顺序一致的话,直接输入等于号。C上主要用index…match函数。
D、将成绩单界面,根据名字的不同,演绎成全班所有同学不同的成绩单,每个同学一份,批量制作,一次完成。这个过程,用VBA代码完成,完全实现无人值守,让电脑自动操作。如果需要批量打印,亦可由VBA提交给打印机,批量完成,如果有必要打印奖状,也由VBA批量完成。
由此可见,数据的汇总、分类统计、特殊援引,都可以由函数完成。临时性、纯手工、批量作业,可交给VBA。该用函数就用函数,该用VBA就用VBA,让VBA和函数,各得其所,各尽其妙,珠联璧合,使办公自动化臻于随心所欲,高效快捷。
为什么不全部使用VBA呢?
我想,函数作为excel内置功能,经过微软无数工程师通力合作,精心设计,反复测试,是微软研发团队集体智慧的结晶,又经过长期不间断地调试、升级、完善和发展,其成熟性和稳定性自然是毋庸置疑的。当然,要完成某项工作,使用何种函数公式达到最优最高效,在多达近400个函数中,你的选择,往往也是你的眼光和智慧的重要考量。相比Excel函数公式, VBA代码的设计,则带有浓厚的个人色彩,大多是单兵作战或闭门造车的产物,必然囿于设计者个人的认识和智慧,自然要显得稚嫩。虽然我没有作过统计,但我仍然坚信,在VBA和函数同时都能完成的许多工作中,VBA一定会逊色于函数公式的。因为你不能保证自己的代码算法最优、VBA函数选择最精当,也不能保证杜绝BUG,更不能保证众多的VBA程序间能够完美兼容。
基于此,VBA并非万能。如果你是以Excel作为常用软件来办公的职员,要解决某个问题,函数公式应该是首选;若函数公式不能胜任,才请出VBA。因为她毕竟是微软为了拓展Excel功能,弥补函数公式之不足而专门设计的,关键时刻让她帮你排忧解难,定会大显身手的。特别在协调其他软件、调用电脑的周边设备方面有着函数公式所不可替代的作用。
由此看来,VBA虽非万能,然不用VBA,也是万万不能的!
——以上是对VBA的一点浅见,敬请大师行家们指教。

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-12-3 19:38 | 显示全部楼层
会员广场很少见这种帖子了,顶一个!

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-12-14 20:37 | 显示全部楼层

恩,VBA很强大,现在只识冰山一角,楼主文笔很好啊,赞你一个吧,今天就剩一朵花了,给你吧,哈哈。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-12-16 14:55 | 显示全部楼层
看到题目就进来看看,一直希望学习VBA,一直没有学会,仅限于录制宏的水平。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-12-20 19:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
从录制宏起,一步一步前进,咱们一路同行!!

TA的精华主题

TA的得分主题

发表于 2016-9-22 21:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
关于学习VBA是不是一定要有英语基础以及函数水平是否要达到相应基础?

TA的精华主题

TA的得分主题

发表于 2016-9-23 08:39 | 显示全部楼层
只是、那个人 发表于 2016-9-22 21:45
关于学习VBA是不是一定要有英语基础以及函数水平是否要达到相应基础?

相当部分使用VBA的人不懂英语的,也不懂工作表函数的。
会英语学起来会更容易些。
如果工作表函数玩的很好,特别是对数组的概念了解的很透彻,学习VBA的数组部分可以秒杀。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-29 00:29 , Processed in 0.055915 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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