vba如何体现代码进度(初学VBA人员要反复理解程序文件中的代码)
此文接上文"初学VBA人员要重视程序文件",如果您没有看这篇文章,建议您先后再看这篇文章。
理解4 事件
上述代码是一个单击事件,那么什么是事件呢?其实VBA的整个学习过程就是一种面对对象编程的理解过程。在这个过程中我们要理解什么是对象:工作簿是对象,工作表是对象,单元格是对象,按钮是对象,各个控件都是对象,有了对象就要分析对象的属性,对象的属性就是对象的性质,是对对象的描述和设置,对象才能有自己的方法和事件。
在"VBA之EXCEL应用"一书的第四章,有对单元格作为对象的详细讲解,有属性的设置和方法的利用。
对于事件,我们同样可以在"VBA之EXCEL应用"中找到必要的介绍,在第十一章我们会看到EXCEL中的事件(Events);工作簿打开事件(Workbook Open Event);工作表改变事件(Worksheet Change Event);鼠标双击前事件(BeforeDoubleClick Event);等等,当我们在理解了这些事件后,再回过头看看这个按钮的单击事件,你也许会感悟更多。但是,对于初学VBA的学员,仅靠这些是无法完全理解面向对象编程的含义的。
如果你能深入的学习VBA,或许你可以看到我的第五套教程"VBA中类的解读和应用",在这套教程中我们会学习到什么是对象?什么是类?什么是过程?什么是方法?什么是属性?什么是事件?什么是接口?等等。掌握了这些理论,对于自己VBA的应用会更加游刃有余。
所以,对于VBA代码的理解不止是一次或者两次的过程,这会贯穿到你整个的学习过程,大家对代码的理解也是一步一步提高的过程。
理解5 Private Sub的含义
或许你首次看到这个英文的时候,也许不是很关心其中的含义,其实对于初学者,这个时候确实也是没有必要的,但是当我们学习到了"变量的作用域""过程级作用域" "私有模块级作用域""公共模块级作用域"及"变量的生命周期"(VBA之EXCEL应用的第五章)的时候,我们就可以理解一下Private的含义了:"模块级变量可以是公共(Public)的,也可以是私有(Private)的。"虽然这是对变量的介绍但是您是否看到了Private这个词呢?这个词的汉语意义就是私有的意义,那么对于 Private Sub的过程,大家就可以理解为这个过程是私用的过程,在其他的过程中是不可以用的,是谁的私用过程呢?当然是按钮对象的私有过程。所以在您学习到了VBA之EXCEL应用的第五章后,再次回头读这篇文章时我们要理解到这一点。
我们再来看看本文最初的代码:
Private Sub CommandButton1_Click()
Dim tempA, tempB, 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
有了我们上面的五点理解,我们再来看看上面的代码,我们会知道,上面的代码是一个事件,这个事件是对用户单击工作表中按钮的一种响应,当我们单击了这个按钮,就会执行一系列对我们有用的命令。这个响应就是用户和对象的一种互动(大家要知道,这种互动不是方法,方法只是对象的动作)。在这个事件中用户对按钮要进行单击,按钮被单击后就会发出程序指令。
在这个指令中会首先分配内存给三个变量,然后对工作表Application.Workbooks("工作簿01.xlsm").Worksheets(2)的单元格对象做出各种指示命令。这里的Application是指应用程序对象,Workbooks("工作簿01.xlsm")是指工作表"工作簿01.xlsm"对象,Worksheets(2)是工作表对象,整个就是一系列的对象的分解。到这里我们可以略微窥探到面向对象编程的简单含义了。
在VBA的世界中,我们将借助于office的外接程序接口,实现自定义数据处理,实现个人小型办公自动化,VBA的妙处多多,也就是对要各种对象准确的理解和应用。对于初学者要务必多重视代码,理解代码,找到代码中的关键点,这样自己的VBA水平才能得到真正的提高。
所以我们要多回头看,在每篇文章的后面我会有回向的内容,但是回向不仅仅是每篇文章的回向,也要对之前文章的回向。在佛教中回向是一种功德,在学习中回向更是我们精进的一种途径。学习过程中要信、解、受、持。更要有回向的业力。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com