VBA过程 基本使用
过程的基本使用包括2个步骤:过程的定义、过程的调用。
1、过程的定义
语法
Sub 过程名称(参数列表)
语句块
End Sub
过程定义以Sub开头,End Sub结束。
过程名称需要符合标识符命名规则。
参数列表可以为空,也可以根据需要设计1到多个参数。
语句块可以是1条或者多条语句,也可以调用其它过程。
无参数的过程我们前面已经自定义了很多,主要讲解带参数的过程。
定义参数
Sub 过程名称(参数1 As 数据类型1 , 参数2 As 数据类型2,…参数n As 数据类型n)
语句块
End Sub
参数的作用:调用过程时可以传入不同的参数值,过程根据实际参数值进行运算。
这里的参数称为形参。
示例:求a与b的和。
Sub sum1(a As Integer, b As Integer)
Dim c As Integer
c = a + b
Debug.Print "sum:" & c
End Sub
过程体中的内容3句代码可以合为1句代码,这里为说明函数的封装性,故意写为多句。
形参a、b为自定义,也可以改成别的名字,过程体中的代码使用a、b的地方也相应修改即可。
例如:将a、b修改为x、y。两个函数是完全等价的。
Sub sum1(x As Integer, y As Integer)
Dim c As Integer
c = x + y
Debug.Print "sum:" & c
End Sub
2、过程的调用
语法
过程名称 参数1 , 参数2…参数n
过程名称与参数之间用空隔分开,参数之间用逗号分开。
这里的参数为实参。
运行过程中,实值的值会传递给形参。
如果没有参数,写直接写过程名称调用
过程名称
也可以通过Call进行调用
Call 过程名称( 参数1, 参数2…参数n)
过程名称后的参数需要小括号包括起。
注意事项:
带参数的过程无法通过VBA的运行按钮直接运行,只有无参数的过程才能直接运行。
示例:在过程sum1_call中调用sum1。
Sub sum1_call()
'调用过程
sum1 20, 23 '输出43
Call sum1(20, 23) '输出43
End Sub
3、完整示例
求1、2、3…到n的和。完整代码如下。
Sub sum2(n As Integer)
Dim i As Integer '声明循环变量
Dim result As Integer '用于存放和
result = 0
For i = 1 To n
result = result + i
Next
Debug.Print "sum:" & result
End Sub
Sub sum2_call()
'调用过程
sum2 10 '输出55
sum2 100 '输出5050
End Sub
复杂计算封装到过程中,过程的设计会比较复杂;一旦过程设计好,调用非常简单。即一劳永逸。
通过参数,可以到1到10、1到100,任意指定参数都可以,使得过程的功能更加灵活。