百家号Lite
如何看待百家号小程序热议话题「VBA实在太强大,太方便了!学会了之后,工作效率快好几倍」
一年前我毕业工作,以为Excel只是复制粘贴,调整格式。机缘巧合工作恰好是要用到VBA,仿照同事的代码只会写最基本的Function语句:IF...Else...四个月前注册账号,那会几乎什么都不懂。虽然写了几个月的Function,但是Sub是毛都不知道,还有就是我也算是0基础。四个月(中间两个月去炒股了,想想都后悔。。。),学会的也只是用数组,字典的部分用法。还有部分杂七杂八的东西,有些囫囵吞枣了。好歹自己整理了一个大大的文件夹,各种代码都有。脑子里有了一些底子了,算是迈出了第一步。VBA的很多部分,特别是数组和字典,还是很容易接受的。VBA数组,我是和函数数组相互印证学习的,感觉比函数数组简单。字典,对我来说,就是高级版的VLOOKUP,所以学习起来没有太多困难。而学会了字典,等于完全掌握了一个对象的学习过程,再学其它的,变得容易很多。。所以可能学习VBA就是要有一个敲门砖,这个砖找对了,门一下子敲开了,路就好走很多。希望你能找到自己的砖。只会不是很难的函数。其他的都不懂。听说VBA是学不完的,所以想学到一般的程度。以下几点送给你初学的你1:调试经常看到新手学习了很长时间的VBA之后仍然不会使用调试功能,一遇到问题马上就请教他人,这样不利于自身的成长。调试非常重要,是学习代码本身不可或却的一部分。是诊断,梳理代码逻辑的过程,可以避免逻辑错误的重复性发生。善用调试新手很多的问题都可以得到解决,即可摆脱对他人的依赖性,自身又得到长足的进步,一举两得。三个窗口,三个功能键:地方窗口,立即窗口,观察窗口,F1(帮助),F2(属性方法),F8(分步执行)途中诊断:断点,stop等等。2:分拆(1)语句分拆长而难懂的句子分拆成基本单元,利用调试功能一个个解决,很容易就理解了它的含义。如: intRow=Range("A"&Rows.Count).end(xlup).row立即窗口: ?Rows.CountRange("A"&Rows.Count).SelectRange("A"&Rows.Count).End(xlup).Select?Range("A"&Rows.Count).End(xlup).row用眼睛都可以看到每一步Excel选中的哪个单元格,那么自然就不难理解了。这个小范例同时揭示了学习程序过程中一个非常重要的方面:动手尝试。(2)子程序分拆把一个冗长的程序按照功能拆分成一个个相对独立的子程序来调用,使得程序具有一定程度的组织性,结构性,规整性大大提高了代码的可维护性,扩展性,重用性。这是贯穿程序语言发展的一条主线,因为它直接指向了程序开发的终极目的之一:开发效率。3:耐心学习目的明确≠急于求成。无论学习目的如何直接和明确,学习的过程仍然不是一蹴而就的,"捷径"只能是建立在扎实的阶梯式基础上。有些新手基本代码还没写利落就开始用界面写"系统",甚至还没学会调试,结果是步履维艰,一步一问,三步一错,无以为继。还有的朋友学习VBA是为了研究彩票,还没学习一星期就开始写各种计算方法,自然处处遇"难",大挫学习兴趣,随之放弃。抱着明确的目的学习是好事,不管目的是否"明智"(这是另外一个话题),但明确的目的不等于"急功近利"。学习的进程总是遵循渐进式的规律,跳跃式的一夜暴富只能是空中楼阁,VBA的优缺点是和其设计定位紧密联系的,是相对于其它对比对象而存在的。抛开定位在其适用范围之外与其它开发语言比较来谈VBA的"缺点",这种比较本身就是有失偏颇的,因为它就不是为了开发而设计的,所以也就无所谓什么"缺点"了。同样,基于设计出发点的用途和功能也就不能称之为"优点"了,本身就是干这个用的,又何来优点?但这些的确可以作为VBA的特点。听起来比较混淆,就用2个单词作为标记更容易区分些:Advantage,Feature。其实称谓不重要,也没必要较真分的那么清。重要的是和定位联系起来看待VBA的存在及其特点。1:作为程序语言和其他开发语言比较,VBA的特点:(1)"天然"强大的输入输出平台对着"大黑框框"学程序一学就是几年,太没成就感了,什么样的控件能有Excel强大呀。(2)使用便捷无需搭建任何环境,IDE,调试器(debugger)齐全;Office装机量大,VBA到哪儿基本都可以拿出来用,就像哪部电脑都有浏览器一样,JavaScript随时可以用;无需保存,编译,即可运行;代码数据一体化(同时也是"缺点"),发布简单,无需运行环境。与其它自动化操纵Office的方式相比,与COM交互更加容易便捷。(3)简单易懂,门槛低,学习周期短为了完整性,还是罗列出一些所谓的"缺点"2:VBA的"缺点"(1)不好封装(2)需要宿主解释器的解析,所以速度慢(3)安全性差(4)无法提供面向对象的结构式编程方式(5)单线程(6)................................概括起来基本上涉及底层,大型应用的方面根本做不到,较为复杂点的应用系统在与数据库结合后并非不能做到,但仍不适合。上述"缺点"基本上是脚本语言具有普遍性的"通病",显然VBA就不是针对完成上述功能而设计的。但相对于寄生于Office的脚本来言,VBA是唯一的存在(VSTO不是这样的方式),独此一份没有可以比较的对象,所以优点就无从谈起。希望你能找到自己的砖。我还是觉得,VBA和函数一样,多学多练才是王道,杀贴一万,做不了统帅,也能做大将军了。1、买本书2、看些视频教程,比如网上的教程,视频吃透前面几十集就行了,完全能够满足工作了3、最重要的就是多写,多练,多尝试,多F1看帮助文件,推荐用office2010,之后的不带本地帮助文件了,犯错误多了理解记忆的就深刻,Justdoit!我还是觉得,VBA和函数一样,多学多练才是王道,杀贴一万,做不了统帅,也能做大将军了。
该话题由百家号作者Excel教案「简介:Excel每天1分钟,进步一点点,专注办公技巧」整理发布。
更多有关VBA实在太强大,太方便了!学会了之后,工作效率快好几倍的讨论请扫码关注百家号小程序签约作者「Excel教案」了解更多
方法1:微信扫描百家号Lite小程序码即可订阅热议话题「VBA实在太强大,太方便了!学会了之后,工作效率快好几倍」
方法2:微信搜索百家号Lite小程序名称进入,即可订阅热议话题「VBA实在太强大,太方便了!学会了之后,工作效率快好几倍」
方法3:微信网页访问即速商店,长按识别百家号Lite小程序码即可订阅热议话题「VBA实在太强大,太方便了!学会了之后,工作效率快好几倍」
百家号Lite小程序热议话题「VBA实在太强大,太方便了!学会了之后,工作效率快好几倍」由百家号Lite原创摘录于微信小程序商店shop.jisuapp.cn,转载请注明出处。
百家号Lite热议话题「VBA实在太强大,太方便了!学会了之后,工作效率快好几倍」由百家号Lite开发者向微信用户提供,并对本服务内容、数据资料及其运营行为等真实性、合法性及有效性承担全部责任。