使用数组时,出错是很容易的。如果你试图给数组赋予比声明数组时更多的成员的话,VBA就会显示错误信息“下标越界”。
另外一个使用数组时经常碰到的错误是类型不匹配。要避免这类错误,就要牢记一个数组的每个成员都必须具有相同的数据类型。如果你试图给数组成员赋予和数组声明的数据类型矛盾的数据的话,你就将在执行代码时收到“类型不匹配”的错误。要让一个数组出错不同类型的数据类型的话,你就得声明数组为Variant类型。
数组作为参数:
在子过程或者函数过程之间作为必须或者可选参数传递。如果传递的参数不是过程执行一定要的话,那么这个参数名称就应该在前面加关键字Optional。然而,有些时候,你事先并不知道你要传递多少个参数。一个典型的例子就是加法。你可能想要将两个数字加和,或者,你也许要加和3个,10个,或者15个数字。使用关键字ParamArray,你就可以将一个包含任意个成员的数组传递给你的子过程和函数过程。下面的函数过程AddMultipleArgs将加和你所需要的任何多个数字。该函数以数组myNumbers的声明开始,注意关键字ParamArray的使用。该数组必须声明为Variant类型,并且它必须是函数过程的最后一个参数。
Function AddMultipleArgs(ParamArray myNumbers() As Variant)
Dim mySum As Single
Dim myValue As Variant
For Each myValue In myNumbers
mySum = mySum + myValue
Next
AddMultipleArgs = mySum
End Function
Public Sub Multipleadd()
c = AddMultipleArgs(1, 23.24, 3, 24, 8, 34)
MsgBox c
End Sub