分享

28-1

 jze02 2013-04-28

 笔者从事财务和文字编辑工作十多年来,使用最多、最感兴趣的办公软件当属Office Excel了。从最初接触Excel97-2003,到现在使用Excel2007,感觉到这款办公软件的技术越来越先进、功能越来越强大、操作越来越简便。尽管如此,实际工作中还是有很多个性化的需求和问题难以在软件中找到有效的解决方法或方案。虽然Excel提供了 VBA二次开发功能,让使用者可以通过学习和掌握VBA知识,来编写适合自己需求的应用程序或代码,但是,对于我们这些实际工作者来说,由于没有稳定的学习时间,即使想学VBA,一时半截也难以入门,更不用说掌握应用了,所以工作中遇到的一些问题还得用土办法、笨办法去解决。前不久,偶然读到EXCEL VBA范例大全》(Excel 2002/2003版本兼容,电子工业出版社出版)一书。据其前言介绍:“本书适合广大EXCEL VBA初、中级读者及VBA程序员使用,也可作为大中专院校相关专业学生,以及社会相关培训班学员的理想教材”。但我感到该书也能让我们这些稍懂一点VBA基础知识的人,就能运用VBA。目前,我已运用该书附带的实例代码解决了工作中的几个问题。所以,这里着重从一个实际工作者和应用者角度,谈谈对该书的几点认识和体会,或许对广大同仁有所启示和帮助。

         体会一:涵盖面广,突出实用。本书精选的350Excel 2007 VBA设计实例,包括了几乎所有的Excel 2007 VBA知识点,覆盖各行业涉及到的Excel应用技术,典型实用、覆盖面广。例如,对保存在各类盘中的历史资料,为了便于以后查询和调用,过去我是用Excel的“超链接”工具一个一个文件地建立文件目录,假如一个文件夹中有400多个文件,这样下来大约需要半天时间,很是枯燥费时。由于本书实行盘书结合,将光盘中附带的“实例250 列举指定文件夹下的所有Excel文件”程序源代码复制到代码窗口,并将其中的一个字符稍作变动后加以运行,即可列出指定文件夹下所有的文件目录。过去需要半天时间完成的工作量,运用这个代码程序后在23分钟内即可完成,效率提高程度,由此而知。

         体会二:“断章取义”,拿来即用。该书与其他VBA书的不同之处在于,我们不需要从头至尾地去阅读该书的每个章节或每一页(当然,若想成为VBA高手,那就另当别论了),对于我们这些实用主义者来说,在工作中遇到需要解决的应急问题时,只需对照350个实例目录,查找到与自己需求相类似的实例后,将代码复制过来即可用,即便自己的表格格式或数据增删有变化,也不需要过多地修改代码中所涉及的区域引用。例如,若要在车间产量工作簿中每日建立一个工作表,每月月初新建立当月工作表,当月多少天,则需建立多少个工作表,对这一费时费力的事情,只需将“实例177批量新建工作表”代码复制过来,两三秒钟即可完成任务。再如我们在工作中常常会遇到需要建立一个同格式多表格(多名称)的工作簿,以便进行汇总,过去基本做法是在样表的后面插入需要的工作表数量,然后将样表格式逐个复制到各分表,再对汇总表及各分表进行重命名,如果分表数量较少的话,倒还好说,如果有十多个或数十个分表,这样做就相当烦琐了。现在将实例177拿来稍作改动后,即可在样表中批量完成各分表的复制和重命名工作,速度的提高是不可同日而语的。据该书作者介绍,其撰写本书的初衷和目标,也就是“让用户复制代码即可用”。

        体会三:学教结合,易懂易用。该书对各实例代码的处理方法有三个特点:1.每句代码都有注释,让读者可以轻松看懂代码;2.对每个实例都有对应的语法解释,使读者可以举一反三;3.为了程序的通用性,代码大多采用动态地址引用,让程序的适用面更广。而我觉得该书一个最大的特色,在于她提供有超值的售后服务,即读者可以通过作者的QQ群与其随时交流VBA问题、索取插件源程序、请教学习中的各种疑问,甚至可以参与作者的VBA在线教学。笔者断断续续听了作者的几堂在线教学后,曾试着修改几个实例代码,以达到自己需要的目的,在运行成功后,心中那份喜悦是难以形容的。由此我也体会到,只要找到合适的书籍和学习方法,EXCEL VBA并不是那么深不可测,深不可学,VBA殿堂的大门也不再是那么令人望而生畏、望而却步。

1.我觉得这本书叫范例大全有点委屈,应该叫范例大全与详解,呵呵;

2.现在市面上关于VBA范例的书不少,但是能够有详细解释的确不多,罗老师的书每一个范例都有详细的解释,让人知道每一步的意思,这很适合我们初学者;

3.我感觉罗老师书里都是用简单的代码解决了复杂的问题,如果罗老师能够把这种解题思路教给我们就更好了!在做每一个范例的时候加上你的解题思路,引导我们遇到问题,如何去分析,呵呵来到EH有一周左右的时间了,这里人的热心以及知识面是可以得到肯定的。而且你要是细细地、翻箱倒柜

地找一找,基本上你想要的和你想知道的知识以及实例都可以找出来。

但是我们依然可以看到重复或者相类似的问题在不断被重新提出来。一部分原因是我们这些新手不知道怎

么去或者是懒得去搜索。还有一部分的原因我想应该是这样的:

首先:EH里有大量的详尽的教程,语言生动,讲解详细。但是坦白的说,真正愿意或者有时间坐下来静静

地将这些教程从头至尾看完的人,并且能够能在较长的时间内记住并熟练运用的人没有几个,因为很多人

的专业并不是从事高频次的编程,而是偶尔来找些自己需要的代码和实例,这一点我比较顶山菊花版主的

思路。

其次:可能很多长期泡在这里的人会觉得有些人的问题问的太肤浅,甚至于不愿意仔细回答,但是深与浅

是相对每个人的这方面的知识面而言的,对您来说也许是皮毛功夫,对一些刚入门的人来说,没有人帮他

解答,可能他用一天时间也无法完成。现在给新手一些细致的回答,可能会增加一个日后的高手,否则的


话他们可能会止步于起步阶段就无奈或消极地退出。

第三:我们经常看到高手的回答往往用的缩简语句,对于新手而言,复制粘贴后功能实现了,却不知所以然,正如一个刚

学英文ABC的人,你告诉他 you are ;  I am 等等是什么意思,但是他看见you're ; I'm  他会认为这是另外两个单词。事实

上很多新人找到了类似的代码,就是因为这样无法看懂,而不能对自己的代码进行修改或者类推,才再次提出类似的问

题。比如我们经常可以看到别人问道“跨表复制”的问题,就是他找到的示例或者得到的回答中的 .CELL() 或

者 .RANGE() 移植到他的代码中不加sheet?或sheets()前缀或者不提前赋值,几乎无法实现他需要的表复制功能。不要以

为来要求帮忙修改代码的人都是能看懂代码的。所以在一个以扩展知识的论坛里,详尽细致的回答和解释也是必不可少

的。

对于新手而言:
首先:如果您是真的想来学习的,那您可以先针对身边的工作或学习的需要来有针对性的找些相关的实例,仔细分析它们

的代码,先不要提问,尽量根据这些代码类推出自己想要的结果,事实上系统的错误提示也是学习的一个工具,至少可以

让你知道它错在哪里,如果你解决了,你会感到真正的快乐,而且你会记住正确的语法,(可能这时候你还是不知道什么

意思,但等到你不断的这样做,你就会逐渐明白了),遇到不明白的,可以先看帮助或者搜索一些这些方面的解释。

其次:如果您确定您是新手,那就不要奢望一次就完成一个很复杂的系统工程,以前你是怎么做你的EXCEL,现在还怎

么做,该用辅助列、辅助表您继续用,做完了以后,再根据自己的知识面,看看能用VBA或者换一个更简洁的函数、公式

来替代,目的就一个,逐渐消灭您能消灭的辅助列、辅助表,现在消灭不了的,咱留着以后消灭,小米加步枪,咱就打游

击战,能歼灭几个是几个。真要是领导催的急了,万不得已才用各方面采集的代码打组合拳,(缴了鬼子的武器,不用也

是浪费)但这只是应急的方法,绝对不是学习的好方法,除非你知道你打出的那套组合拳各出自哪门哪派,叫啥名,否则

一旦别人问起来,你总不能说是迷踪拳吧。

第三:遇到问题,自己应该有明确的思路,这样至少你想打组合拳的时候知道要去找什么样的招式,否则领导明明让你打

对方的脸,您偏偏整出个"撩阴脚”出来,累死您也达不到目的。所以正如我上面说的,您继续接着玩你的辅助列、辅助

表,它们是你思路的源泉,因为您想达到的目的,有时候不是一步就能达到的,要分很多步去实现,一步一步的地找,等

到您能自己依靠自己的能力将他们简化了,您自己的拳路也就形成了。再到相关的论坛看看想类似的实例是否比自己的优

化,(相信这个时候您已经能看懂那些文字和符号了。)讨论学习,进一步提升自己。

到了那时候您回头看看,EXCEL不过如此。早在Apple机盛行的年代,我就迷上了电脑,在学校的编程考试中还得过第二名!那时候曾申请了好多QQ号码,可惜后来都不记得密码了,否则,现在发大了!大学里虽然没有电脑课,但自己在校外的培训班逐渐掌握了电脑的基本知识和技能,最后参加了一个“办公自动化”的培训班时,发现老师讲的大多已是我已经掌握的内容,而我经常提出连老师都无法回答的问题,有时老师都对我的笔记本感兴趣,要借回去看,那可都是我周末不断到书店“偷抄”最新的教材实例的精华啊!那时的我,觉得Excel虽然比WPS要先进许多、方便许多,但也不就是一个表格而已嘛,没什么大不了的,没想到过了若干年后,突然发现我当时的想法太幼稚了!::L 

    由于我是学医的,当医生的五年里基本上没怎么碰办公软件,倒是影像学软件多一些。后来转行到了一家船务公司(注:公司用的全是英文系统和英文版office),由于各个部门都以数字报表作为衡量工作绩效的标准,于是接触到Excel的机会才又多了起来。很快大家都知道我对Excel非常熟练,于是头头把更多做统计或报表的机会给了我,而我做起来也是如鱼得水,自然非常得意!这个时候的我,更多的时候便是在研究键盘的快捷键,让做报表更迅速一些。一个偶然的机会,我却发现原来公司里藏龙卧虎!有很多人Excel用的比我更出神入化,许多我以前从来不曾听说过的功能吸引了我浓厚的兴趣!其中最主要就是函数的强大的计算功能。除了自学,一旦我发现一个特殊的函数,就会向它的使用者讨教,积累更多经验。平时上网时就会下载许多关于Excel函数的电子教材,不过,实在太多,许多到现在我都没时间看,唉,通病啊!想必许多人都有这样的经历。不久,我的函数使用水平突飞猛进了,我趁热打铁,用函数设计了一个“自动计算当月工资”的小工具,填几项就能得到当月的工资,哈哈,由于相当准确,我的小工具在公司广为流传,许多同事非常惊讶工具算出来的数和她们最后发的工资一模一样,对我非常钦佩,我也感到非常自豪。[em07] 

    换了几个部门后,“Macro”这个词出现在我耳边的频率越来越高,我了解到它中文名叫“宏”,录制它可以使一些要多次重复相同的工作时更方便快捷,省时省力。自己在工作过程中,也用到过一些,自己被这种工具的强大深深打动了!但它对我来说,太神秘了!从来没接触过,就像狗咬刺猬--无处下手啊!我也尝试过自己录制了一些,不过,觉得非常生硬、毫无目的、不好控制,根本达不到我想要的目标!我非常好奇:为什么别人可以录制出那么出色的macro呢?一个偶然的机会,我选择了“macro”里的“edit”,结果出来的一片密密麻麻的代码吓了我一跳,还以为哪里点错了呢!后来才知道,这才是“macro”的秘密和强大功能的所在——VBA编辑器和代码。从那个时候起,我才了解到,原来想要录制一个功能强大的macro必须要懂得一种编程的语言才行!::( 

    可是,我一不是计算机专业,二不懂编程,能学得会吗?经过查阅一些书籍,书上的内容大大鼓舞着我:学习VBA并不需要懂很多高深的编程知识,它的基本语法非常容易弄懂(当然至少需要有一定的英语水平,高中英语水平就够了),当然如果你学过VB语言就更容易上手了,反过来,如果你掌握了VBA,再学VB语言也是大有好处,因为,他们在很多地方既是相通的,也是相似的。于是,我下定决心,一定要学会VBA![em01] 

    于是,买书,看视频,下载电子教材是必不可少的,网上有太多的免费学习资料,只要你肯去找。其中我自己觉得:如果有视频的话,是最容易让人接受的一种方式,毕竟有人言传身教,效果肯定是好很多的。但是,通常视频的内容不够全面(大多是为自己写的书做广告的,全教给你了,他的书怎么卖得出去啊?),而且花时太长,所以就需要有选择的看,对于那些难懂的,去看视频,而那些容易的,就看书或电子教材就好了。书,我只买过一本,而且买了之后,我大致翻了一遍觉得很多东西不懂,于是就先放在一边,等有一定基础之后再回头看,结果发现大部分我都能看懂了,这是后话。为什么喜欢下电子书,尤其是像我这一篇一样的,亲身经历写成的电子书,因为是亲历者的语言,而且过来人都知道新人哪里最需要帮助,所以语言上、选取的例子一般都比较浅显易懂。看过一部分学习材料之后,感觉有那么一点点意思了,似乎晦涩难懂的VBA在我心中已经不那么可怕了。于是,自己学着开始自己复制、粘贴一些书中的代码到编辑器,然后一步一步运行,在Excel中看它运行的结果,每看到一次成功的运行,心中就激起无比的喜悦!尽管它还不是我编写的,嘻嘻。:loveliness: 

    随着知识的丰富,越来越感到:需要一些实例来进一步提高实战的能力。所以,到深圳市图书馆办了个图书证,借了本《实用技巧大全》,由于不能借出光盘,所以,我利用业余时间,硬是一个例子一个例子把它里面上千个实用的技巧研究了个透,并把代码全部抄了下来,保存到一个Excel文件中,以备以后查阅。由于图书馆每次最多只能借一个月,到期就得续借,于是我先后续借无数次,终于抄到了第后一页!看到我完成最后一个例子的研究,我感慨万千!自己编写VBA的水平又有了质的飞跃!在看这本书的过程中,我还结合工作的需要,为团队的一项工作进行了非常有成效的工作流程的改进,其中重要一项就是设计了十几个非常有用的小macro,把大量的人力解放出来,大大提高了工作的效率和准确性。这其间要特别提到www.这个良师益友!虽然很早就注册了它,但以前上网只顾着玩游戏、看新闻、听音乐,很少去网上学习,但在研究公司第一个macro工具的时候,自己遇到非常大的困难,毕竟是第一次,写的很多代码都出现error,真是让人感到无助,这时候想起了这个网站,于是,发贴求助成了那段时间我上网的主要活动,每天固定时间会打开它来看看,是否有大侠发新贴回复。果真,在几位大侠非常热心的帮助之下,我非常顺利地完成了第一个macro的设计工作,而且从中又学到了非常多的实用的技巧,并且极大地增强了我的信心!随后的设计工作也渐渐感到不是那么高不可攀了!:victory: 

    赠人玫瑰,手有余香。这个大家庭给予了我无私的帮助,所以,今天我也把自己的经历写出来,给比我更新但有志学习Excel的新人鼓鼓劲!今后,我看见一些新人的贴也会尽可能的想办法把自己的思路说出来,虽然可能没有大侠们的解答那样精辟,但这是我的心意,也是提高自己的一种方法,看看自己的思路为何与大侠们有差距。既可帮助别人,又可以进一步提高,何乐而不为呢?祝愿大家和excelhome一起成长!:handshake

下面就分享一些我在这个网站下载的一些我觉得非常适合初学者的学习资料,首先声明:这些资料的著作权和所有权都不是我,我只是帮原著者传播一下,帮助大家,请原作者体谅!以我个人的经验,按我所标记的顺序来学习,很快你就会对Excel和VBA有深刻的认识了!(不好意思发现:个人权限不够,许多文件太大,压缩后仍超过我所能上传附件大小的限制,实在抱歉!如果有需要的,可以加我的QQ:******,我用QQ传给你。请见下文新QQ。)

[ 本帖最后由 coolcoldwind 于 2010-6-30 15:49 编辑 ]

       由于去年10月份换工作的原因,我离开了原来那家公司,在这家公司五年的时间让我受益匪浅!尤其是excel技术。但自从今年4月份找到一份新的本专业的工作之后,获得晋升,工作变得越来越忙!想利用手中学的东东改进一下工作中的流程,却苦于没有时间研究而有心无力,更是遗忘了当初给大家的承诺!实在汗颜!不久前,突然得闲,在查阅我N久没开的GMAIL邮箱之后,我非常之震惊!原来,有这么多渴求知识的朋友给我发来邮件寻求帮助,甚至我的这篇不入流的文章还被版主放在头版予以推荐!我感激之余又心生惭愧!于是乎,我给所有给我发过邮件的朋友回复了一封信,请他们加我的QQ:1611275361,如果有任何初级的疑难问题(我真的还称不上高手),我愿意在工作空闲之余给予解答,以实现我当初的承诺,回报EXCELHOME这个大家庭!回报各位学友!谢谢你们!

        感谢广大学友的厚爱与支持,我原先留的QQ被大家加爆了,导致许多后来的学友没法联系我,因此,再留一个工作QQ,方便大家随时能找到我,谢谢!新QQ是:1611275361。谢谢大家!并预祝大家龙年龙马精神!龙腾虎跃!新年快乐!

[ 本帖最后由 coolcoldwind 于 2012-1-19 16:49 编辑 ]

        我现在的新工作是一家专业体检中心的健康管理师,在工作我又设计了一些工具,让我的部门节省了不少人力。而这些年,我的QQ上已经加了数百热心学习excel的伙伴,感谢你们对我的信任,我的水平有限,只能帮大家解答一些简单问题,请大家见谅!  

读书的困惑
知识来源于多种渠道,而读书是其中之一。可以说,最主要最系统的知识还是来源于书中。然而,对于不同的人,或者是说不同水平和层次的人,往往会有些许的困惑,或盲目、或茫然、或无从下手、或不知所措……
1、好书意味着什么
毋庸置疑,一本好书,无论是对读者,还是对书中所传授知识本身的传播、发展和实践,都是极其重要的。好书,能让读者迅速了解想要的知识,激起学习的兴趣,有所获,有所得,经得起反复咀嚼,能给人以回味。好书,也是对其介绍的技术本身的发扬,从读者易于理解的角度深入剖析了技术,其良好的组织架构在让读者汲取知识的同时,也无意中眷恋上了该技术。
对于初学者来说,一开始能接触到一本好书,是他的幸运,也是他想要了解的技术的幸运。幸运在于,这本书能让他径直地走向技术的殿堂,而不会原地转圈,或走蜿延崎岖的山路。同时,读者也不会因为读书的无获而转向其它。但是,面对茫茫书海,且又是生手,如何选对书呢?自已要斟酌,特别是对于某技术初感兴趣的读者,不能盲目的在书店里一股脑儿买一大堆书,回来之后一本翻开不久就厌烦了,结果浪费了时间、精力和感情。现如今,互联网发达,自已可以多在其上转悠,看看哪些书畅销,读者对其评论如何,其大致介绍了什么内容,如何组织的,适不适合自已的胃口,还可以在专业论坛上请教一些前辈,他们肯的意见也能提供很好的指导。总之,买书之前做到有的放矢。
而对于有经验的读者来说,好书则是他们的良师益友。一本好书,能解决困惑他们好久的问题;一本好书,能在他们遇到问题时帮助解决;一本好书,也能帮助他们重新认识正在运用的技术;一本好书,更能提升他们的技术境界。
2、如何读书
好书,是作者经验、心血和智慧的结晶。获取一本适合自已的书后,一定要用行动来好好珍惜。一定要仔细阅读,对书中的点睛之笔更是要精读。另一方面,一定要动手实践,特别是对于书中的示例,自已要能在计算机中实现它。同时,要结合一些实例,进行运用。尤其是被誉为经典、一版再版的图书,更是要反复咀嚼。我想,花在这一本书上的精力和时间,一定会大大胜于花于一些泛泛而谈的图书中的时间。
再者,要提醒的是,人的精力是有限的,对一项事物痴迷到一定程度后,肯定会有厌倦。这时,一定要坚持,不能半途而废。说不定,这正是积累和沉淀的过程,挺过去,又是一片天。当然,在读书的过程中,如果能够利用各种渠道和志同道和的人交流,并能得到有益的响应,一定会大大地提高读书的兴趣,也会促进对书中内容的理解和掌握。
3、想到了Excel
现如今,Excel已广为人知,VBA在国内也日益发展,这从当今图书市场上Excel和VBA大量的图书可窥知一二。从当初这方面图书的馈乏,到现在的争奇斗艳,我一直经历着。从中也看到了,随着应用水平的提高,图书质量的提高。我现在面临的问题是,Excel太博大精深了,基本上各个方面都可以利用它,而现在的技术层出不穷,我需要学习各方面的技术来扩展Excel,但我又怕太杂,反而适得其反。经过一段时间的考虑后,我划分了下面的六类,使自已能清楚地学习而不受干扰。
(1)Excel电子表格自身,这是最基本的东西,对Excel的功能一定要熟练运用。还有ExcelVBA,一定要理解透彻,运用自如。VBA几乎可以做任何事情,不过这要取决于对它的了解和掌握程序。——学习Excel和ExcelVBA
(2)VB6与VBA有着不可分割的关系,在某些方面两者可能完全相同,充分利用VB6有而VBA没有或很难实现的功能,可以很好地弥补VBA的不足。——学习VB6
(3)一些主流语言或经典语言的学习可以为VBA的深入研究打下坚实的基础,毕竟,它们研究的人多、应用的人也多,高手更多,经验和技巧更是层出不穷,其编程思想更是被称作艺术,这些都可以对VBA的深入发掘开拓思路。何况,利用它们也能充分扩展Excel的功能。——C/C++的学习
(4)VBA有着无可替代的优势,在国外,它早已深入人心,有很多这方面的大师级的人物。我们现在不会说VBA已过时,至少在今后的相当长的一段时间内不会。但随着技术的发展,一些新的技术将会逐渐显示优势和吸引力,它们的一些特点也改善着VBA的不足,并且有着自身在开发Excel应用程序方面的良好特点。——VS.NET和VSTO的学习
(5)正在成为业界标准,Excel早已容纳了它,并逐渐地成为了主流。——XML的学习
(6)在网络中发挥Excel的功能。——ASP和ASP.NET的学习
我还在总结,在学习的过程中总结……
但,要学的东西太多了,不能乱,不能陷入困惑,必须清晰!

分类:Excel学习认知

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多