Sub..end sub

sub..end sub控制语句用于定义可从 call 语句中调用的子例程。

语法:  

Sub name [ ( paramlist )] statements end sub

 

自变量将复制到子例程,而如果 call语句中相应实际参数是变量名,则退出子例程时这些参数将再次从现有子例程中复制回来。

如果子例程通过 call语句调用的形式参数比实际参数多,额外的形式参数将初始化为 NULL 值,且可在子例程中用作局部变量。

由于 sub语句是控制语句,并以分号或行尾结束,两个可能子句(subend sub)中任意一个子句都不得跨越行边界。

参数:  

参数 说明
name 子例程的名称。
paramlist 子例程形式参数变量名列表的逗号分隔符列表。这些可用作子例程内的任意变量。
statements 一个或多个 QlikView脚本语句的任意组。

示例 1:  

Sub INCR (I,J)

I = I + 1

Exit Sub when I < 10

J = J + 1

End Sub

Call INCR (X,Y)

示例 2: - 参数传递

Sub ParTrans (A,B,C)

A=A+1

B=B+1

C=C+1

End Sub

A=1

X=1

C=1

Call ParTrans (A, (X+1)*2)

以上结果将在本地子例程内,A 将初始化为 1,B 将初始化为 4,C 将初始化为 NULL值。

退出子例程时,全局变量 A 会将 2 作为值(从子例程复制回来)。第二个实际参数 “(X+1)*2” 不会复制回来,因为其不是变量。最终,全局变量 C 不会受到子例程调用的影响。

另请参阅: