请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

共享社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: 活动 交友 discuz
查看: 2202|回复: 24

[原创] VBA从小白到达人养成记第一篇-兴趣与坚持不懈的支撑

[复制链接]

12

主题

59

帖子

188

积分

排长

Rank: 2

威望
4
金钱
294
贡献
5
发表于 2015-10-24 04:25:20 | 显示全部楼层 |阅读模式
第一章:前言

    回想学习VBA的种种经历,种种苦楚涌上心头。今日的我已经为公司的各种需求写各种功能代码,已经开始敢胆大妄为的在网络之中接VBA的活儿,已经开始写教程录视频为自己那段如痴如醉又似疯魔的日子留下点什么。也许很多人觉得我现在很狂,觉得我是“万能”的,但是几年前初学VBA那般疯魔的日子,多少个不眠之夜,多少次面对身边同事的不理解,别人总以为你是在不务正业一天天都不知道在做什么,如果当时一个念头坚持不下去了就彻底放弃掉了,台上一分钟台下十年功,如今庆幸自己当时的那般勇气与坚持才能一直走下去。

    可能想学VBA的朋友一开始都会对公式与VBA做个比较吧这让我想起了小时候刚开始学自行车的时候,家里的老人总是说学会了骑自行车就不会骑三轮车,会了三轮车就不会骑自行车,而作为小朋友既精通骑自行车又精通骑三轮车的一定会让老人一番夸赞。对于公式与VBA也可以有这样一种比喻虽然不是很恰当,三轮车与自行车都有骑行的功能,但是三轮车不仅可以骑行还可以载货。就我认知范围而言,公式可以做的VBA通吃,VBA有些可以做的公式只能眼睁睁看着不能为之。如此之言并不是我对公式或者使用公式朋友的不敬,只是就我而言应征了小时候家里老人说的话:学会了骑自行车就不会骑三轮车,会了三轮车就不会骑自行车。

    就像本文的标题一样,我认为小白学习VBA要具备两个先决条件:兴趣与坚持不懈!先来说说怎么才能对VBA产生浓厚的兴趣。这需要一个契机,一个让你对VBA刮目相看的契机,一个能让你认识到VBA对于节省工作、提高效率的强大、粗暴之处。只有你自身产生了这种兴趣才能如痴如醉的沉浸到VBA的学习之中去。在第二章我会用我的亲身经历跟朋友们分享我是如何被她的简单、粗暴而又强大的功能所折服。


评分

参与人数 1贡献 +2 收起 理由
共享社区张少同 + 2 赞一个!

查看全部评分

回复

使用道具 举报

12

主题

59

帖子

188

积分

排长

Rank: 2

威望
4
金钱
294
贡献
5
 楼主| 发表于 2015-10-29 09:53:09 | 显示全部楼层
vito 发表于 2015-10-29 09:52
正想学习,可是自己能VBA一点基础没有,语言也没有接触过。只是自己工作这么多年来的工作需要,对于EXCEL函 ...

跟着坚持学下去,后面会将如何建立自己的工具箱,一步一个脚印的来跟着教程
回复 支持 1 反对 0

使用道具 举报

12

主题

59

帖子

188

积分

排长

Rank: 2

威望
4
金钱
294
贡献
5
 楼主| 发表于 2015-10-24 06:13:34 | 显示全部楼层
本帖最后由 种地也玩VBA 于 2015-10-25 06:09 编辑
   当您学会了录制宏之后,正如这篇教程里所说开始接受对象、属性、方法、事件了。前面我说过Excel VBA之所以简单是因为Excel万变不离其宗的几个对象就是工作簿、工作表、单元格,什么是对象?你可以理解为某类事物,比如人就是对象,动物也是一类对象。那么人的属性有姓名、性别,就好比工作簿的属性也包括工作簿的名称;人吃饭的方法是张开嘴巴子,那么工作簿就有打开的方法就是open;什么是事件呢?这样来给您比喻应该容易理解一些,比如每天早上我是六点的闹钟起床,那手机的时间一旦触发早上六点这个事件就闹钟就会响起,好比工作簿的打开事件,只要触发工作簿一打开就执行什么样的代码或者操作。您现在可以听的晕晕乎乎,您现在可以做的就是尽量去理解,实在理解不透也不要钻死胡同,随着您后续学习的深入,再加上通过学习其他人代码的过程您就会发现常用对象、数量、方法、事件就那么几个。如果偶尔碰到不常用的等您学成了就会融会贯通很容易上手的将那么不常用的拿来便用。在这个教程里面最后两个小节讲了Worksheet的SelectionChange事件,我比较认同教程放在最后讲这个东西。当您把教程学完了就可以尝试着去用教程的例子理解事件了。    比较重要的几点说明:判断语句if语句建议您学的时候深入理解一下,最好自己做一些简单的例子去巩固深化,因为这个判断语句在您今后的编程的当中必然会是经常用到的。其次还有另外一个重磅语句就是for-next循环语句,这个更加需要您去理解,如果您天资聪慧可以自己做些示例,我当初学用了点时间才算理解了点,因为没人给我指导。其实现在开来,循环语句翻译成中国人的话就是谁都别着急,一个一个来,有序排队。还有就是select case语句,这个您最好是结合其他人写的代码示例来理解这个语句就更加容易了。此处我就不做实例了,因为有些早,您要先把我发的教程里面的基础东西都看完了才是合适的时机。此外还有for each语句也是很常用的,剩下的do while,do until, go to语句暂时不建议您看,当您把前面说的几个理解透彻了再回头看这三个语句才算合适!最后教程里还有几个实操案例,您可以尝试去做一做,加深一下对基础知识的理解。
    其实一开始学习VBA的小伙伴应该都有一个共同的困扰那就是VBA里面有这么多对象、属性、方法,这么多语句而且都是英文的,能记得过来吗?能背下来吗?我能学好吗到底?现在我可以完全的告诉你这些观点都是错误的至少在我看来。到现在为止你让我去随便去想一个函数或者属性或者方法,我什么都想不起来,我能想起来的依然是工作簿workbook对象,工作表worksheet对象,单元格range & cells对象。也许你会问你什么都不知道怎么编程?我会告诉你现在我脑子里装的是VBA编程就像前面说的那些基础语句用法,还有后面要学的数组、字典、正则、封装等知识,当你需要操作什么对象了解其方法、属性时你只需要“临时抱佛脚”现用现查即可。我所谓的临时抱佛脚并不是让你临时用了才去学,而是你先把VBA的基础打扎实,等着以后再用新东西的时候就会有你的基础作为后盾上手极其容易。所以这里必须要提的就是Excel自带的F1功能,不管你是初学还是老手,F1必然是最好的启蒙老师,里面有Excel所有对象所有方法所有属性的用法讲解,甚至很多都有用法示例。慢慢的...慢慢的...你就越来越发现F1是你多么强大的帮手及好伙伴。
    最后,我个人建议您第一遍看这个教程肯定有看不明白的地方,没关系,直接跳过不明白。所以第一遍简称快速扫描式看法。这时您肯定留有不少不明白的地方,这时就需要第二遍去查漏补缺了,看完第二遍你对这篇教程应该大概有个了然于胸的概念了。但不要轻易就这么过去了,因为您可能用一上午的时间就能看完两遍,这时您仍然需要看第三遍、第四遍、第五遍,我把后面的三四五遍简称巩固巩固再巩固。甚至到现在我有时间的时候还会翻起这些往日的基础教程去扫描一遍!
    好了,这就是第二章的基础篇教程完整学习策略,如果您有什么不明白的地方直接在后面跟帖我会及时回复您的~~
   


回复 支持 1 反对 0

使用道具 举报

12

主题

59

帖子

188

积分

排长

Rank: 2

威望
4
金钱
294
贡献
5
 楼主| 发表于 2015-10-24 06:08:54 | 显示全部楼层
第三章:着手学习VBA

    写在前头:其实说实在的,VBA既简单又不容易。简单在哪些方面呢?其实你想一想,Excel的VBA无非就是对工作簿、工作表、单元格这三个对象操作来操作去的,就这三个对象你觉得她东西多吗?比dota简单多了,英雄辣么多,技能辣么多每个都要记我反正是醉了塔粉别喷我...说她不容易呢,是因为虽然归根就三个对象,但是要培养一种程序员规范的编程习惯又谈何那么容易的就能养成?哈哈,不管您是到哪一步,不管您是多么的坚持不下去都请参考本文第二章!

    声明一下哦:下面的很多教程并非我原创,我只是站在前人的肩膀上充实自己方便大家,所以很多教程我直接拿过来放到这里,但绝不是滥放,都是经我学过筛选在这里适合某个阶段的教程。再配上我教你的方法也未必不可行。

    要说初学VBA那你一定是开始百度搜索各种教程吧,但是你肯定也发现网上的教程多的如牛毛,如何去分辨一个教程是不是适合你当下的阶段学习?好了,不用分辨了,我已经用自身血粼粼的教训为您甄选过了。首先我为您准备的第一道教程大菜名字叫:《菜鸟谈VBA最最基础入门》。 菜鸟谈VBA最最基础入门.zip (981.25 KB, 下载次数: 191)
回复 支持 1 反对 0

使用道具 举报

12

主题

59

帖子

188

积分

排长

Rank: 2

威望
4
金钱
294
贡献
5
 楼主| 发表于 2015-10-24 05:01:05 | 显示全部楼层
第二章:我的VBA学习之路

    最初接触Excel还是上大学的时候有那么一节课老师给讲了讲Excel,那时看着老师各种下拉填充,各种复制粘贴,各种sum求和...觉得老师很牛,同时又对Excel这个软件心生了敬畏之情,感觉她很难,那么不易靠近。直到我毕业去到了江河幕墙,彻底改变了我对Excel的再认识。

    江河对于毕业生而言就像一座学校一样(为我母校做做广告),培养你做人的道理,培养你做事的能力,她就像我的第二个母校一样,让我遇到了各种牛人,见识到了各种解决超难问题的集体智慧,最重要的她让我学会了感恩。感恩身边曾经真正帮助过你、辅助过你的领导,同事,朋友甚至是陌生人...我刚去的那个部门我第一个领导是一个用VBA如神的组长,那时他写的程序为部门当时的一大超级问题,为部门工作的正确率与高效率做出贡献不可磨灭。那个时候他给我讲了他遇到VBA的故事,又告诉我一句话:技多不压身,学习VBA对以后的工作绝对没有坏处。后来我又在他调试代码的时候听他跟我讲他发现循环里面的Ubound可以判断数组最大维度时的欣喜,其实我那时根本听不懂什么叫数组,什么叫最大维度,也许你现在也听不懂,但是我真真切切的感受到了他那种坚韧不拔的求知精神,这种精神直到现在仍然影响我前进、学习。直到现在我要感谢在江河帮助过我的陈工、高工、刘工、肖工、张工...太多人了。

    现在我也不知道我自己的内心是变态,是好胜还是不服输的心理,那时我就在告诉我自己虽然我现在不行但是总有一天我一定要像我的组长一样用VBA为部门解决各种问题。也许并不是兴趣,而是这种心态支撑着我去学习她。后来转到中东部门之后我们搬到了主楼西侧二楼,那时的主楼每晚十一点半以后都会有安保去办公室查看,如果还有人在加班就会在他的登记簿上签上你的名字,那时一度有半年多,我跟我后来的领导刘工共同每晚钻研VBA到十二点多,几乎每晚我们两个的名字都会上那个安保的登记簿,如果现在去翻起13年后半年的登记簿一定会找到我们两个的名字连在一起。

    仍然想起一次周五晚上,大家都下班该回家回家该走的走了,而我那天遇到了一个现在看起来非常非常简单的VBA问题,整整一个下午我一直在调试、尝试,却都没有解决,因为那时的办公室是套间,外面的人不知道我还在里面就把门锁上了,等晚上七点多我实在想不到该怎么解决的时候才想起要吃饭,可是门锁了我很着急的找了半天终于发现有一个窗户还没上锁可以跳出去,在吃饭的路上...拼了命的想想想...终于有了一个思路赶紧吃完饭跑回去又从窗户跳进办公室打开电脑继续尝试...哎!不疯魔岂成活儿?话说现在村里的瓜子还那么香吗?村里的人工蛋糕还在吗?红菜坊的海藻还那么让人惊艳吗?

    本不该说这些多余的话,但只是想给现在想学VBA可一开始激情十足稍有挫折便急流勇退,还有那么正在犹豫要不要学,正在犹豫要不要放弃的人,无论面对怎样的周围,怎样的“不务正业”的评判,坚持做下去,对以后的工作有益无害!


回复 支持 1 反对 0

使用道具 举报

0

主题

2

帖子

2

积分

班长

Rank: 1

威望
0
金钱
11
贡献
0
发表于 2015-10-24 07:53:31 | 显示全部楼层
一字一句认真的拜读了两遍,从字里行间都能感受到楼主对VBA的热爱,对工作的执着,还有对过往的感恩!
向楼主学习!
回复 支持 0 反对 1

使用道具 举报

12

主题

59

帖子

188

积分

排长

Rank: 2

威望
4
金钱
294
贡献
5
 楼主| 发表于 2015-10-24 06:13:56 | 显示全部楼层
占楼编辑首页暂且全占了就
回复 支持 反对

使用道具 举报

12

主题

59

帖子

188

积分

排长

Rank: 2

威望
4
金钱
294
贡献
5
 楼主| 发表于 2015-10-24 06:14:14 | 显示全部楼层
占楼编辑首页暂且全占了就
回复 支持 反对

使用道具 举报

12

主题

59

帖子

188

积分

排长

Rank: 2

威望
4
金钱
294
贡献
5
 楼主| 发表于 2015-10-24 06:14:32 | 显示全部楼层
占楼编辑首页暂且全占了就
回复 支持 反对

使用道具 举报

12

主题

59

帖子

188

积分

排长

Rank: 2

威望
4
金钱
294
贡献
5
 楼主| 发表于 2015-10-24 06:14:50 | 显示全部楼层
占楼编辑首页暂且全占了就
回复 支持 反对

使用道具 举报

12

主题

59

帖子

188

积分

排长

Rank: 2

威望
4
金钱
294
贡献
5
 楼主| 发表于 2015-10-24 06:15:10 | 显示全部楼层
占楼编辑首页暂且全占了就
回复 支持 反对

使用道具 举报

12

主题

59

帖子

188

积分

排长

Rank: 2

威望
4
金钱
294
贡献
5
 楼主| 发表于 2015-10-24 06:17:30 | 显示全部楼层
占楼编辑首页暂且全占了就
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|共享社区 ( 京ICP备15025663号-2  

GMT+8, 2018-12-11 07:59 , Processed in 0.198025 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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