VBS教程:VBScript语句-Sub语句
Sub 语句
声明Sub过程的名称、参数以及构成其主体的代码。
[Public [Default]| Private] Sub name [(
arglist
)]
[statements]
[Exit Sub]
[statements]
End Sub
参数
Public
表⽰Sub过程可被所有脚本中的所有其他过程访问。
Default
只与类块中的Public关键字连⽤,⽤来表⽰Sub过程是类的默认⽅法。如果在类中指定了不⽌⼀个Default过程,就会出错。
Private
表⽰Sub过程只可被声明该过程的脚本中的其他过程访问。
name
Sub的名称,遵循标准变量命名约定。
arglist
代表在调⽤时要传递给Sub过程的参数的变量列表。⽤逗号隔开多个变量。
statements
在Sub过程主体内所执⾏的任何语句组。
arglist参数包含下列语法和部分:
[ByVal | ByRef] varname[( )]
参数
ByVal
表⽰该参数是按值传递的。
ByRef
表⽰该参数按引⽤传递。
varname
代表参数的变量名称,遵循标准变量命名约定。
说明
如没有显式地指定使⽤ Public 或 Private,则Sub过程默认为公⽤,即它们对于脚本中的所有其他过程都是可见的。Sub过程中局部变量的值在调⽤过程中不被保留。
不能在任何其他过程(例如,Function或Property Get)中定义Sub过程。
使⽤Exit Sub 语句可以⽴即从Sub过程中退出。程序继续执⾏调⽤Sub过程的语句之后的语句。可以在Sub过程中任意位置出现任意个Exit Sub语句。
与Function过程相似之处是:Sub过程是⼀个可以获取参数,执⾏⼀系列语句以及可改变其参数的值的独⽴过程。⽽与Function过程不同之处是:Function 过程可以返回值,⽽Sub过程不能⽤于表达式中。
vbs脚本怎么停止可以使⽤过程名并跟随相应的参数列表来调⽤Sub过程。关于如何调⽤Sub过程的详细说明信息,请参阅Call语句。
⼩⼼Sub过程可以是递归的,即该过程可以调⽤⾃⼰来完成某个给定的任务。但是递归可能会导致堆栈溢出。
在Sub过程中使⽤的变量分为两类:⼀类是在过程内显式声明的,另⼀类则不是。在过程内显式声明的变量(使⽤Dim或等效⽅法)总是局部变量。对于那些没有在过程中显式声明的变量也是局部的,除⾮在该过程外更⾼级别的位置显式地声明它们。
⼩⼼过程可以使⽤没有在过程内显式声明的变量,但只要有任何 script 级定义的名称与之同名,就会产⽣名称冲突。如果过程中引⽤的未声明的变量与其他的过程、常数或变量的名称相同,则会认为过程引⽤的是脚本级的名称。要避免这类冲突,请使⽤Option Explicit语句可强制显式声明变量。