如何学习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 DoubletempA Range(A5).ValuetempB Range(C5).ValuetempC Range(E5).ValueRange(A5).Value tempCRange(C5).Value tempARange(E5).Value tempBEnd 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实践经验全部浓缩在下面的各个教程中