Sub过程及详细解释.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Sub过程及详细解释

]Sub过程的详细解释 语法 [Private | Public | Friend] [Static] Sub name [(arglist)] [statements] [Exit Sub] [statements] End Sub * 用[]符号括起来的选项是可选的。 前面这3个[Private | Public | Friend]是同作用范围有关的。Private表示私有,即是这个过程只能从本模块里面调用。使用了这个的话,你从菜单工具-宏-宏...里看不到这个过程。Public表示公用,这样你从其它的模块也可以访问这个公用过程。如果前面没有任何[Private | Public | Friend]的话,过程默认是公用的。公用的过程可以从菜单工具-宏-宏...里看得到。Friend是用在类模块里面的,比较少用,就不说了。 Static是静态的意思,你可能还记得用Static声明静态变量,用它声明过程的话,表示这个过程里面声明的局部变量在下次调用这个过程时仍然保持它的值。 下面是Static声明过程的用法. 运行try1过程,然后可以在立即窗口里看到结果。 Static Sub m1() Dim i As Integer Dim j As Integer i = i + 1 j = j + 1 Debug.Print i= i j= j End Sub Private Sub m2() Dim i As Integer Dim j As Integer i = i + 1 j = j + 1 Debug.Print i= i j= j End Sub Sub try1() Dim i As Integer Debug.Print 静态过程: For i = 1 To 10 Call m1 Next i Debug.Print 私有过程: For i = 1 To 10 Call m2 Next i End Sub 如果没有使用 Public、Private 或 Friend 显式指定,Sub 过程按缺省情况就是公用的。如果没有使用 Static,则在调用之后不会保留局部变量的值。Friend 关键字只能在类模块中使用。不过 Friend 过程可以被工程的任何模块中的过程访问。Friend 过程不会在其父类的类型库中出现,且 Friend 过程不能被后期绑定。 小心 Sub 过程可以是递归的;也就是说,该过程可以调用自己来完成某个特定的任务。不过,递归可能会导致堆栈上溢。通常 Static 关键字和递归的 Sub 过程不在一起使用。 所有的可执行代码都必须属于某个过程。不能在别的 Sub、Function 或 Property 过程中定义 Sub 过程。 Exit Sub 语句使执行立即从一个 Sub 过程中退出。程序接着从调用该 Sub 过程的语句下一条语句执行。在 Sub 过程的任何位置都可以有 Exit Sub 语句。 Sub 过程与 Function 过程的相似之处是:它们都一个可以获取参数,执行一系列语句,以及改变其参数的值的独立过程。而与 Function 过程不同的是:带返回值的 Sub 过程不能用于表达式。 可以使用过程名并后跟相应的参数列表来调用一个 Sub 过程。请参阅 Call 语句关于如何调用 Sub 过程的详细的说明信息。 在 Sub 过程中使用的变量分为两类:一类是在过程内显式定义的,另一类则不是。在过程内显式定义的变量(使用 Dim 或等效方法)都是局部变量。对于使用了但又没有在过程中显式定义的变量,除非其在该过程外更高级别的位置有显示地定义,否则也是局部的。 小心 过程可以使用没有在过程内显式定义的变量,但只要有任何在模块级别定义的名称与之同名,就会产生名称冲突。如果过程中使用的未定义的变量与别的过程,常数,或变量的名称相同,则认为过程使用的是模块级的名称。显式定义变量就可以避免这类冲突。可以使用 Option Explicit 语句来强制显式定义变量。 注意 不能使用 GoSub、GoTo 或 Return 来进入或退出 Sub 过程。 现在说说arglist, 它的语法如下: [Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type] [= defaultvalue] 先说Optional,Optional表示这个参数是可选的,意思是在调用过程时可以不传递值也可以传递值给这个参数. 如果有给出defaultvalue给这个参数时(如optional iInput

文档评论(0)

liwenhua00 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档