百倍年薪!从零开始学VBA

2018-10-10 11:15:00 20点赞 154收藏 20评论

张大妈是一个很好的平台,从各路大佬分享的经验里面,我们可以汲取到非常多的营养,让自己少走弯路,比如学会了用CTRL+C代替右键、复制之后,提高了工作效率,我们就可以当上总裁,年薪百万。
确实,无论什么工作,想要更上一层楼,保证质量的前提下提高工作效率是基础。对于部分工种来说,使用简单的代码去处理一些繁杂却又不得不做的事情,可以节省出大量的时间。
有的朋友可能听到写代码就会望而却步,实际上VBA的语法算是比较友好的,用的时候结合现有资料已经足够。并且,任何语言实际运用的时候,更重要的是使用环境而非语法本身。
从零开始学VBA?人人都行。

一、VBA的特性

VBA的语法与VB6最接近,虽然后面还有VB.net等后继,但是参考性还是VB6大些。

VB6并不是面向对象的语言,但是这个毫无关系。很多人觉得面向对象是流行,不是就落后了,其实这只是一个误区。
不同语言适用的场景不同,VB6本来就是为了快速开发而诞生,VBA则是更加便捷的脚本语言,没有任何面向对象的意义。

别老想着面向对象,乖乖搬砖去别老想着面向对象,乖乖搬砖去

VB也好,LUA也好,有人捣鼓出类似于面向对象语言的使用方法,但那只是在声明和写法上,做到类似面向对象的语法而已,并不能改变本质,也没有实际意义。
以前在CSDN讨论过VB的面向对象写法,也在网游公司做过几年的LUA脚本监制,当时组内也盛行过LUA的“面向对象”写法。
后来我自己总结了一下,不管哪种脚本的所谓“面向对象”的写法,不能提高代码的可读性、维护性,不能提高代码的执行效率,不能减少代码量,也不能改变语言和代码的本质,说白了属于茴香的四种写法,自己用着顺手就行,别跟着网上某些人钻牛角尖,搞得不这么写就落后还去四处胡乱鄙视。

二、VBA的基础语法

VBA的声明
dim i as integer
把i声明成一个数值
dim s as string
把s声明成一个字符串
虽然也支持dim a这样不声明类型的写法,但个人并不推荐。这样的写法,变量a将为不确定类型,首次对其赋值的时候,系统才会根据赋值的类型进行初始化,可靠性极差。

连接字符串
s1 = s2 & s3
推荐使用shift + 7打出来的这个符号。
在VB里,加号也可以连接字符串,如果两个变量都是字符串,则进行拼接操作。但是这样会导致代码的可读性下降,不推荐。
&符号的另一个好处是,如果有一个变量为数值,则会强制转换成字符串再拼接,而加号不行。

百倍年薪!从零开始学VBA

无赖语法
on error resume next
正常的使用方法是on error goto,也即类似于C语言的try catch,用于出现错误时,捕获、跳转,以便处理。
而VB的这个resume next的写法,会忽略所有错误(除非严重到程序崩溃),继续往下执行。一般来说,只适用于无关紧要的、编写者已知并能掌控的小错误,否则当程序得不到正确结果的时候,你会发现无从调试。
写程序难免要查东西,或者看别人的代码。如果你看到有人用这个语句,建议先不要学,否则既无法得到正确的结果,也无法通过任何错误提示进行调试。

给大家讲个真实的笑话
我第一份工作,那时还是实习。
公司里有一个“前辈”,是比我早进去的所谓“程序员”。
有一天,他代码不会调来问我,我一看他代码,不用循环的,而是复制几百遍……
当时有点惊,而他的回答是,给了我一个白眼,说:你不懂!Treeview这个控件,不能用循环的!
我当时一瞬间还真被他唬住了。一看他弃用的代码,瞬间石化:
on error resume next
dim i as string
i = i + 1
给没有基础的朋友解释一下:他定义了一个字符串,拿去当成数值运算,然后屏蔽了所有错误信息,无从下手,就认为“Treeview这个控件不能用循环”了。
经历了这件事后,我信心大增,走上了程序员的不归路……百倍年薪!从零开始学VBA

三、在Office里启用VBA

百倍年薪!从零开始学VBA

出于安全考虑,在Office里VBA默认是不启用的。

我们需要在设置,信任中心里,把文件所在位置添加进信任位置。

百倍年薪!从零开始学VBA

或者干脆一劳永逸,直接启用所有宏。

另外,文件必须另存为xlsm格式。

四、浏览官方参考文档

理论上,我们可以安装MSDN进行本地查询。
但是这玩艺儿,动辄好几G大小,安装也很麻烦。

百倍年薪!从零开始学VBA

微软提供了完整的在线文档,可以访问以下链接:

Office VBA Reference | Microsoft Docsdocs.microsoft.com去看看


虽然也曾有过带中文的旧版,不过版本较旧而且中文也不完整,建议直接在线看比较方便。

如果被英文文档吓到了,不要紧,因为大部分时候,我们需要哪个功能,才会去搜索该功能的实现方法,所以实际运用的时候,善用在线搜索,会比部署完整的文档更为有效。

或者,你也可以搜索“office编程手册”这个关键字,可以搜到2003版的官方手册,虽然旧了点,大部分内容是通用的。出于各种原因,这里不方便放链接,反正满地都是了。

百倍年薪!从零开始学VBA

不愧是微软官方的文档,不仅详细,而且归类都非常的整理和统一。

五、善用搜索解决问题

写代码的时候,无论再大的功能,都是由一个个小功能组成的。所以我们不需要把所有对象、函数、方法等都背得滚瓜烂熟,要用到什么,就去找什么。

比如我现在要用代码切换工作表,如果你稍微有点基础,知道工作表的英文是Sheet,那么直接打开官方的参考文档,找到对象,S开头:

百倍年薪!从零开始学VBA

我们可以看到:
Sheets("sheet1").Activate
示例代码里就已经有我们要的答案了。

那,如果我们连最基础的英文对象名都不知道呢?
VBA这么多年,网上也已经有很多的积累和沉淀了,其实稍微一搜索就有。

比如,我们想要用代码选中某些单元格,那么,以“vba 选中 单元格”为关键字搜索的话,就会出来很多答案:

百倍年薪!从零开始学VBA

当然,网上的代码不一定完全是对的,也不一定完全符合需求,我们可以把它实际运行一下试试看。

百倍年薪!从零开始学VBA

我们把代码丢进去,执行一下,果然代码执行过后,D5单元格就被选中了。
搞定!

再比如,咱连VB的for循环语句都不会写,怎么办?
以“VB for 语法”为关键词:

百倍年薪!从零开始学VBA

可以找到太多太多的资料了。
不怕不知道,只怕不会找。

六、研究别人的代码

对于新手来说,别人已经编写、调试成熟的代码具有比较高的参考价值,可以下载别人的小程序来参考。
VBA甚至能读写文件、连接数据库进行操作,但是比较复杂,这里不做陈述。

百倍年薪!从零开始学VBA

网上随便以“VBA”“范例”“代码”等关键字搜索,可以搜到非常多的资料,由于这里不方便放链接,大家可以自行搜索。

如上图,是高手做的小学数学练习程序,界面整齐,代码完整,直接可用。

百倍年薪!从零开始学VBA

脚本语言如果不特意去加密的话,所有代码都是明文可见可复制,即改即生效的。
这种环境对于初学来说已经是友好得不能再友好了,写不写得出来看造化了。

七、结语

要想提升Excel办公效率质的飞跃,你不可不学VBA!零基础学习VBA看过来小编注:想获得更多专属福利吗?金币加成、尊享众测、专属勋章、达人福利任务你想要吗?如果想要,赶紧来申请认证站内生活家!猛击此链接之前群里讨论过,为什么基础Excel函数教程之类的会成为月经首页热门,得到的结论是:基础用户比较多,看到了就想着说,以后说不定有用吧,点了收藏。所以更高阶一点的东西,比如V波导终结者| 748 评论232 收藏8k查看详情

先声明一下,上一篇这个标题并不是我起的。 其实之前写的是针对有一定基础,但是却不知道具体如何去提高效率的朋友。至于标题为什么会变……还是别问了。

VBA这个东西,比拼音打字难,但是比什么C++还是易学得多。
这么多年实战、沉淀下来的经验,真是用都用不完,只要会查资料,肯实践,从零自学妥妥的。

当然,学习是要思考和实践的,而不是找一份资料,上面有你想要的一切东西,只要复制过来就包治百病。
世界上没有这种资料,更不会有这种学习方法。

资料领进门,修行靠个人。人在工作中,也是不断学习的过程,不同行业和工种需求不一样,如果你有这方面的需求,不妨试试看,学VBA真的不难。至少,比考个什么证容易多了,这里又不用考试,又不用背东西,现成的代码一抓一大把,真不行还可以去论坛问。

而网上虽然有很多编程1000例,或者长篇大论的从入门到精通,甚至还有收钱的培训课程,但是我告诉你,这些都不需要。
你在工作中,有什么需求,想一想是否可以用代码自动化,然后把需求拆分成小点。
比如“筛选范围内特定数值并高亮”这个需求,就可以拆分成“指定/选中单元格范围”,“判断选中单元格数值”,“设置选中单元格颜色”,搜一搜实践一下就行了。VBA这东西不考试,看书背题都没大用,更不需要花钱培训。

百倍年薪!从零开始学VBA

至于实际的功效,还得看具体情况。
像上一篇评论的这位仁兄,遇到了不错的领导,就得到了不少晋升的机会。当然,像我这样干得越多、越好,却只有活更多,工资和职位不升的,那也只能说运气不好,那你就把节省起来的时间,用在别的方面的学习上。学无止境真的没说错。

升职加薪了之后记得来打个赏哦~

小编注:本文作者@波导终结者 是什么值得买生活家,他的个人自媒体信息为:

新浪微博:@波导终结者(https://weibo.com/u/1016801521

扶持推广个人品牌是生活家新增福利,更多详细内容请看生活家公告(https://news.smzdm.com/p/26967/)。欢迎大家踊跃申请生活家,生活家中表现优异的用户还将有机会成为『首席生活家』,欢迎有着特别生活经验的值友们踊跃加入生活家大家庭!




展开 收起

WPS 金山软件 WPS 超级会员 3年卡

WPS 金山软件 WPS 超级会员 3年卡

暂无报价

WPS 金山软件 AI会员1年 金山办公软件官方正版

WPS 金山软件 AI会员1年 金山办公软件官方正版

97.6元起

Microsoft 微软 OFFICE 365 家庭版 会员

Microsoft 微软 OFFICE 365 家庭版 会员

239元起

Microsoft 微软 Office 2016 电子版 送outlook

Microsoft 微软 Office 2016 电子版 送outlook

89元起

Microsoft 微软 OFFICE 365 个人版 办公软件

Microsoft 微软 OFFICE 365 个人版 办公软件

229元起

WPS 金山软件 超级会员2年卡 赠AI会员

WPS 金山软件 超级会员2年卡 赠AI会员

暂无报价

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

268元起

Microsoft 微软 Office365 个人版 3个月密钥 笔记本电脑 台式机平板 办公必备

Microsoft 微软 Office365 个人版 3个月密钥 笔记本电脑 台式机平板 办公必备

128元起

Microsoft 微软 365 家庭版 电子秘钥 正版高级Office应用 1T云存储

Microsoft 微软 365 家庭版 电子秘钥 正版高级Office应用 1T云存储

279元起

Microsoft 微软 Office 家庭和学生版 2021 彩盒包装 适用Windows/MAC

Microsoft 微软 Office 家庭和学生版 2021 彩盒包装 适用Windows/MAC

暂无报价

WPS超级会员4年套餐pdf转word排版PPT润色模板素材

WPS超级会员4年套餐pdf转word排版PPT润色模板素材

暂无报价

WPS 金山软件 超级会员季卡

WPS 金山软件 超级会员季卡

59元起

WPS稻壳会员1年套餐PPT模板素材字体美化图标思维导图官方正版

WPS稻壳会员1年套餐PPT模板素材字体美化图标思维导图官方正版

68元起

【买一得二】WPS联合会员 超级会员年卡+网易云音乐年卡 WPS超级会员年卡(赠7天)+网易云音乐年卡

【买一得二】WPS联合会员 超级会员年卡+网易云音乐年卡 WPS超级会员年卡(赠7天)+网易云音乐年卡

暂无报价

365office365OfficePLUS Microsoft365 12 -

365office365OfficePLUS Microsoft365 12 -

259元起

Microsoft 微软 在线发 office365个人版续费新订microsoft365个人版

Microsoft 微软 在线发 office365个人版续费新订microsoft365个人版

229元起
20评论

  • 精彩
  • 最新
  • 还没赚到钱 先打赏下
    excel重度用户 水平还停留在录制宏和vlookup 透视啥的 有时候累成狗 看看人家写好的vba一键输出的表 一劳永逸 心羡不已 但是一直也没行动
    看大家讨论的热烈 我觉得数据处理和呈现趋势 状态
    最后的路应该是一键分析 提需求和明确最终效果 至于怎么实现就交给AI

    校验提示文案

    提交
    现在大数据和AI是个趋势,不过短期内个人是还接触不到,如果有机会可以了解一下,终会有用的~

    校验提示文案

    提交
    收起所有回复
  • excel vba效率堪忧。

    校验提示文案

    提交
    什么工具做什么事情。你拿VBA来处理超大表格,或者读写千万条的数据库那肯定慢。微软自家的Access百万条以后也开始有严重的性能下降。汽车虽然开得快,小巷胡同进不了。根据不同需求,选择不同工具和方式,是效率的基础,也是升职加薪的第一步。

    校验提示文案

    提交
    收起所有回复
  • 前面为解救同事而自学,入了坑,一般办公场景的应用暂无问题,哪怕写的low点,效率低点。但下一关,网络爬虫难倒了我,且网站都越躲越深,po主是否有推荐的教程,我一窍不通

    校验提示文案

    提交
    爬虫不要用VBA,用PYTHON、JS结合正则表达式做

    校验提示文案

    提交
    python也自学了,用的selenium,可是各个网站js反爬变态了已经,哭

    校验提示文案

    提交
    收起所有回复
  • 经常搞不清sheets worksheet worksheets,大佬能不能讲一下怎么区分以及为什么要这样设计?

    校验提示文案

    提交
    直接搜sheets,前三天就有解答,有点长就不搬过来了

    校验提示文案

    提交
    收起所有回复
  • 你以为我看懂了吗?是的,我认识字,但不知是啥意思!

    校验提示文案

    提交
    我看懂了他自以为是。~其它不懂。

    校验提示文案

    提交
    收起所有回复
  • vba工作时候超级有用

    校验提示文案

    提交
  • 现在还学vb出去怕是找不到高级点的工作,vlookup了解一下,再不然宏录制功能了解一下。
    如果你说复杂的数据处理,有这个时间可以学python or R。
    对了因为宏有安全问题,很多公司都是禁止用宏的。

    校验提示文案

    提交
    噗,vlookup和宏都是vba的封装应用,可以看我上篇的自定义函数教学,函数也好录制的一段宏也好,最终表现形式还是若干vba代码。古有何不食肉糜,您这个说法正相反,吃肉怕是要饿死,吃土了解一下?

    校验提示文案

    提交
    想吃肉直接学python阿,何必要浪费时间在一个已经快被放弃的语言上呢?微软提供了更方便的使用方式就是想慢慢淘汰vba。

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 这叫从0开始??!! [损失几个亿] [损失几个亿] [损失几个亿] [损失几个亿]

    校验提示文案

    提交
  • 我更想知道如何百倍年薪! [皱眉] [皱眉] [皱眉]

    校验提示文案

    提交
  • 学习了,赞一个

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
154
扫一下,分享更方便,购买更轻松