如何学习VBA之1:初学VBA人员要重视程序文件

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的劳动效率,而且可以提高数据处理的准确度。我推出的VBA系列教程共九套和一部VBA汉英手册,现在已经全部完成,希望大家利用、学习。

如果您只是一般的职场VBA需求,可以打包选择7.1.3.9教程+汉英手册,第7套教程是入门,第1套教程是入门后的提高,第3套教程字典是必备的VBA之精华,第9套教程是实用的典型案例讲解。这四套教程内容掌握后足以处理一般工作中的问题,实际写代码的时候再辅助代码汉英手册,足矣!如果您想进一步提高,就需要选择高级阶段的教程了。

VBA是面向对象编程的语言,博大精深。很多朋友咨询VBA的学习方法,我会陆续给大家讲解一些我的经验,大家可以慢慢体会。今日的内容是如何学习VBA之1:初学VBA人员要重视程序文件

【分享成果,随喜正能量】任何寻求安慰的行为,都只会带来短暂的安全感,不能获得成长。成长是特别艰难的自省,必须抛弃所有顺应自己认知的言行。走不出自己的执念,到哪都是囚徒。

如何学习VBA之1:初学VBA人员要重视程序文件

我初学VBA时,当时的资料是非常少,只能借助于实际代码去摸索。从实际代码中去理解这种语言。看的多了,利用的多了,再看一些理论讲解时,理解就更加透彻了。所以一直以来我特别注重程序文件,也反复告诫给众多的学员,要多看程序文件。在我的第七套教程《VBA之EXCEL应用》中,我反复强调"建议大家至少能看两遍,以达到前后融汇贯通,很好地理解这套教程的内容。再次强调一遍,建议大家至少能看两遍。"这是什么意思呢?今天就举几个例子给大家以共享。

我们看下面的代码,这段代码是我第七套第一章刚开始时讲解"实现三个单元格值变换位置的代码"时给出的代码:

Private Sub CommandButton1_Click()

Dim tempA As Double, tempB As Double, tempC As Double

tempA = Range("A5").Value

tempB = Range("C5").Value

tempC = Range("E5").Value

Range("A5").Value = tempC

Range("C5").Value = tempA

Range("E5").Value = tempB

End Sub

同时给出了这段代码的解释,如下截图:

1.1 理解1---代码的变量

如果单纯从代码上去理解,我上面的注释是非常到位了。但是当你在学到数据类型(第七套教程的第五章)后,我们理解了"Double 双精度浮点变量类型"讲解的含义,就会知道,上述的代码所能替换的单元格数据是有一定范围的,如果超出了这个范围,上述代码会报错。这是因为我们用于存储单元格的宿主变量定义为Double类型的原因。那么如果我们实际需要的数据范围比Double更大,或者更小,该如何修正上述代码呢?这就是我们在学习了第七套教程的第五章后再次学习这段代码应该考虑的问题了。

1.2 理解2---对象的描述

在上述代码中有这样的语句:tempA = Range("A5").Value。给出的解释是将A5单元格的值传递给变量tempA,如果我们在学习了"对象层次结构的描述"(第七套教程第三章)之后,我们再看上述的语句时,应该写出这句代码的完整版:

tempA =Application.Workbooks("工作簿01.xlsm").Worksheets(2).Range("A5"). Value

那么为什么可以采用简化的写法呢?我们知道这个代码是写在工作表的模块中,同时这个代码是写在工作表按钮的CommandButton1_Click()事件中,当我们点击按钮时是默认选择了上述对应的工作簿和工作表的,所以省略了。这就是我们在第二次读时应该想到的。

如果大家在学习了我的第一套教程第八十八讲:VBA代码的优化篇,使用With语句引用对象后,上述语句用WITH语句改写,又该如何呢?请大家思考。

1.3 理解3---控件按钮

我们继续开始提到的简单代码的解读,这个代码写在了工作表中一个按钮单击事件中,那么这个按钮是如何建立的呢?

这个问题我们要在学到第七套第十五章讲到ActiveX控件(ActiveX Controls)时,会得到答案。在讲到ActiveX控件时,我们讲了在工作表中可以利用的各个控件,这些控件我们在利用的时候可以得心应手,可以实现某些特有的功能,比如按钮,就是我们可以利用的可以响应我们要实现的一系列操作的开关。有了这个开关,我们在工作表中的操作就可以非常的方便了。比如可以集合某类操作于一个按钮中,当点击时就可以实现我们需要的操作了。所以大家经常会在我的程序文件中看到这类按钮:

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

相关推荐
VBA63377 天前
AI批量PDF数据抓取工具
vba
Access开发易登软件10 天前
我全新开发了一套 Access 通用 Excel 导入工具,现在开源了
数据库·microsoft·excel·mfc·vba·access·access开发
VBA633710 天前
VBA之Word应用第五章第九节 Range对象的方法(三)
vba
wuchunyu00214 天前
VBA 行内容相同时字体变灰
vba
VBA633718 天前
VBA 64位API声明语句第025讲
vba
Access开发易登软件21 天前
Access 导入 Markdown 表格:把文档里的数据写进表
前端·html·vba·markdown·access开发
zhongwei2281 个月前
vba将一个文件夹的内容复制到另外一个文件夹的函数,若存在则是否覆盖的参数。复制前检查源文件夹是否存在。若目标文件夹不存在,则新建
前端·vba
Access开发易登软件1 个月前
Access 复杂业务计算,SQL 写在 VBA 还是存储过程?
microsoft·vba·access·access开发
SunnyDays10112 个月前
如何使用 Python 添加和编辑 Excel VBA 宏(无需安装 Excel)
开发语言·python·excel·vba
taller_20002 个月前
【005】PiE 与传统 VBA 的核心区别
python·vba·pie·py