- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六课 认识过程
课程重点:
●过程的定义
●子过程的语法
●过程的作用域
●静态与动态过程
●过程的命名规则
●过程的参数
●执行过程的方法
●过程的执行流程
今天开始真正的进入编程的环节,开始编写代码,前几节都是铺垫,包括学习方法论及让大家重塑信心。
1.过程的定义
VBA中一段完整的可以执行的语句就叫过程,过程包括子过程、函数过程和属性过程,应用最频繁的是子过程。录制宏产生的过程都是子过程。每个新手刚开始接触的全是子过程。
自定义函数属于VBA的综合应用,高级用户才需要
以下过程属于子过程的标准格式:
Sub 提示()
MsgBox 欢迎使用Excel,今天是 Date
End Sub
大家可以按Alt+F11组合键进入VBE界面,然后单击“插入”\“模块”,然后粘贴以上代码,接着按F5键执行代码查看过程的执行结果。
使用VBA时95%的情况都是在使用子过程。
函数过程的标志是以Function开头,能返回值。以下过程属于函数过程的标准格式:
Function 及格率(cell As Range)
及格率 = WorksheetFunction.CountIf(cell, =60) / WorksheetFunction.CountIf(cell, 0)
及格率 = Format(及格率, 0.00%)
End Function
这是一个自定义函数,我录了一个动画,大家可以了解一下自这一义函数的使用方法。
今天课程的重点是子过程,即Sub开头、End Sub结尾的过程。
对于自定义函数的开发过程以后有专门的课程讲述
2.子过程的语法
[Private | Public | Friend] [Static] Sub name [(arglist)]
[statements]
[Exit Sub]
[statements]
End Sub
这是子过程的语法,比较复杂。
这样标示后就不那么复杂了。
对于以上语法说明需要补充五点:
其一:其中方括号“[]”中的部分表示可选的,可以根据需要决定是否录入。
而“|”符号是并列分隔符,表示它前后的内容属于同一级别,只能选其中一项。
例如“[Private | Public | Friend] [Static] Sub name [(arglist)] ”实际上相当于以下三句:
[Private] [Static] Sub name [(arglist)]
[Public] [Static] Sub name [(arglist)]
[Friend] [Static] Sub name [(arglist)]
其中:
Public表示所有模块的所有其它过程都可调用这个Sub过程。
Private表示只有当前模块中的其它过程才可以访问当前过程。
Friend仅用于类模块中
如果这3者都忽略,那么默认当作Public处理,也就是说编写sub过程时,sub之前什么都不写,表示这个过程是公有过程,有使用Public相同的效果。
其二:Static用于声明当前过程是动态过程还是静态过程。
有Static时表示当前过程是静态过程,其特点是过程中的私有变量的值不会消失;
过程无Static时表示当前过程是动态过程,其特点是过程中的私有变量的值将在过程结束后消失。
在后面的内容中会有案例展示。
其三:括号“()”中的部分表示它是过程的参数。
例如“(arglist)”,同时由于参数外边也有方括号,表示参数也是可选的,可以忽略。
使用了参数的过程只能通过代码执行,不能通过【Alt+F8】的形式在“宏”对话框中执行此过程。
后面会有演示....
其四:子过程包含程序外壳和代码两部分,程序外壳包括“Sub name”和最末一句“End Sub”,这是必选项,任何时候不能省略;
代码部分可以完全省略,不过代码部分才是程序的主体,省略后就不再有意义,所以通常会至少有一句代码。
其五:代码部分“[statements]”表示过程的任意代码,“[Exit Sub]”表示终止过程,该代码允许放在过程中的任意位置,通常配合IF使用或者Goto语句使用,表示符合某条件时终止过程。
接下来针对以上五点分别阐述。
3.过程的作用域
主要针对[Private | Public ]二者讲述。所谓的作用域是指过程的可调用范围。
例如过程可在当前模块中调用,那么过程的作用域就是当前模块,如果过程能在所有模块中调用,那么它的作用域就是所有模块。
其中Public表示所有模块的所有其它过程都可调用这个Sub过程,甚至可以跨工作簿调用。也称公有过程。
Private表示只有当前模块中的其它过程才可以访问当前过程,称为私有过程。私有过程不会显示在工作表界面按
文档评论(0)