自学 VBA 到中等水平一般需要多久?

如果通过上课来学习,和自学相比会多花多久时间?个人主要是指针对金融领域的 VBA 学习,但是对 VBA 了解甚少,相信 VBA 的应用不仅局限于金融,…
关注者
718
被浏览
385,807
登录后你可以
不限量看优质回答 私信答主深度交流 精彩内容一键收藏

楼上的答主们都说的很好,我也来分享我对学习VBA的一些经验和看法。

如果你有编程的基础的话,每天花上1-2个小时,结合一些案例实践,1个月上手VBA完全不是问题。

当然,中等水平 这个词本来就是因人而异。其实也不用纠结这个,能够解决日常工作中的问题就行,即便是只会基础,但是能够搞定工作上的问题,那你就是掌握了VBA,要相信自己。

作为办公自动化坚定的践行者,经历了7年办公VBA、Python自动化经验,10万行VBA、Python代码量,上千个实践项目的积累之后,我总结了一些快速学习VBA的经验做法供你参考:

1、熟悉并掌握VBA的基础知识
2、多动手代码实战
3、积累常用功能代码
4、善用录制宏功能
5、多逛论坛

下面来详细说说(全文共计4000+字,耗时约2小时,阅读全文预计需10~15分钟,觉得不错记得收藏一下哦~~)

1、熟悉并掌握VBA宏的基础知识

一定要熟悉VBA的基础知识!!
一定要熟悉VBA的基础知识!!
一定要熟悉VBA的基础知识!!

重要的事情说三遍,想学号 VBA ,这个一定要重视。不然后面 别人有现成的代码你都不知道如何下手 ,更不要说自己动手去写

买书或者看视频教程都可以(最基础的变量、循环、数组、字典、正则、事件等要搞清楚),网上都大同小异,自己能看得进去就行。

我入门的时候是看的 我要自学网 的 曾贤志 老师的 VBA 教程。

对,就是上面这个。虽然看起里Excel的版本有点老,但是课程依然还是有用。很适合入门的同学学习。

例如关于range的基本用法,就介绍的非常详细,常见的用法和例子都说了一遍。

我学习的时候都把这些用截图软件截取下来,后面慢慢看,遇到了问题可以再反复当工具书一样反复查看。

2、多动手代码实战

边看书或者视频的时候,不要光只是在看和写笔记,

一定要多上机动手实战!
一定要多上机动手实战!
一定要多上机动手实战!

把看过的各个知识点的范例都亲自动手尝试一遍 ,加深对代码的理解。

操作的过程中要是遇到了问题,赶紧翻书或者看视频,看看他们是如何利用这个知识点来解决问题的。然后自己再次尝试敲出来代码,或者录制宏修改代码。

只有自己亲自操作过,这样印象就会很深刻。

这里举个小例子,关于 动态获取 单元格 区域的方法 ,这是VBA宏很基础、必须用的一个知识点。

用的最多的就是使用(End),下图很好的说明了各个方向使用(End)的用法。


如果你只是看视频或者看书,不自己去写代码尝试的话,很有可能你会分不清楚到底是 range.end (xlup) 还是range.xlup(end),也搞不清的range.end(3)、range.end(4)到底有什么区别。

再比如,VBE编辑器是写VBA宏代码的地方,这个编辑器对新手不太友好,对某些代码少写了字母、不规范写法等是不会提示的。

下图其实是一个超级低级的错误,Worksheets少拼了一个字母e。

再比如下面这个,其实就是if语句缺少End if。

你如果不经常敲代码,极易犯这些低等级错误。所以自己一定要动手敲代码,练习手感。光看不练,学习效果一定不会好。


3、积累常用功能代码

我们学VBA宏,就是因为它可以给我们提供非常多的高效功能。

这些高效功能,很多都是会经常、反复使用的,因而网上都会有非常多的通用代码。我们可以把这些常用的功能的VBA代码都积累起来,记住这个框架,这样在实际工作场景当中就会游刃有余,效率也更高。

当你根据自己的需求改过几次后,你就会慢慢培养出自己 写代码的“感觉” ,慢慢的自己就由输入变为输出代码了。

举个例子, 批量操作工作簿这个功能 ,下面这个代码就是一个通用的框架:

Sub 批量操作工作簿()
Application.ScreenUpdating = False
myfile = Dir(ThisWorkbook.Path & "\*.xls*")
Do While myfile <> ""
If myfile <> ThisWorkbook.Name Then
Set wb = Workbooks.Open(ThisWorkbook.Path & "\" & myfile
(自定义其他代码)