前面讲过,VBA代码有两种组织形式,一种就是过程(前面的示例中都在使用),另一种就是函数。其实过程和函数有很多相同之处,除了使用的关键字不同之外,还有不同的是:
- 函数有返回值,过程没有
- 函数可以在Excel表格中像一般的Excel函数那样使用,但过程不可以
- 过程可以指定给Excel表格中的按钮或者图片等对象,但是函数不可以
- 函数只能在被调用时执行,比如在过程中调用,或者在另一个函数中调用,或者在Excel表格中调用。但不能直接执行,而过程是可以的
虽然可以把所有代码都放在一个过程,或者一个函数里面,但是这样会使代码难以维护,特别是非常不便于其他人查看修改。而有时一些重复性的代码,也应该把它们独立出去,作为一个子过程或子函数来组织。使用子过程和子函数的目的,就是为了便于组织代码、便于维护。
1. 过程 Sub
过程以Sub开头,End Sub结束,过程中需要执行的代码放在中间。格式如下:
Sub 过程名()
' 需要在过程中执行的代码
End Sub
过程名后面的括号是必须的,过程可以带参数,就放置在括号里面,稍后会有说明。
过程示例:
Sub test()
Debug.Print "Hello"
End Sub
2. 函数 Function
与过程类似,函数的格式如下:
Function 函数名(参数1, 参数2, ...) As 数据类型
' 需要在函数中执行的代码
函数名 = 函数执行后的结果
End Function
函数名后面的括号是必须的,函数通常都带有参数,放置在括号里面。函数也可以不带参数,但这种情况下的函数通常没什么意义。
括号后面的 As 数据类型
虽然并不是必须的,但是我强烈建议加上。因为函数通常都需要有