使用ParamArray()

通常,过程调用中的参数数目必须与过程规范中的数目相同。 如果一个过程在其规范中需要3个参数,则在调用该过程时,您必须准确传递3个参数,这些参数应具有特定的数据类型,并应按照该过程本身定义的正确顺序进行传递。 一个简单的例子将说明这一点:


Public Function fCalculateInterest(curPrincipal As Currency, sngRate As Single, lngTermInMonths As Long) As Currency
  fCalculateInterest = curPrincipal * sngRate * lngTermInMonths
End Function 
向fCalculateInterest()函数传递一个CURRENCY,SINGLE和LONG值,然后该函数将返回CURRENCY数据类型。

对该函数的典型调用可能类似于:


Dim curInterest As Currency
curInterest = fCalculateInterest(75000, .0675, 240) 
通过使用ParamArray关键字,您可以指定过程将接受任意数量的参数。 每个ParamArray参数的参数可以具有不同的数据类型。 参数本身必须声明为类型变量数组。 进行调用时,调用中提供的每个参数都将成为变量数组的相应元素。 同样,一个简单的代码段将说明这一点。 将对fAverageNumbers()函数进行多次调用,每个调用具有不同数量的参数,有些甚至具有无效的参数。 函数定义以及几个调用和相关的输出将被演示:

Public Function fAverageNumbers(ParamArray varNumbers())
Dim varX, varY, intNumsToAverage As Integer 
intNumsToAverage = 0 
For Each varX In varNumbers
  If IsNumeric(varX) And Not IsNull(varNumbers) Then
    varY = varY + varX
    intNumsToAverage = intNumsToAverage + 1
      fAverageNumbers = varY / intNumsToAverage
  Else
  End If
Next
End Function 
样本调用和输出:

Debug.Print fAverageNumbers(20, 80, 50)  'produces 50
Debug.Print fAverageNumbers(2, 4, 8, 16, 32, 64, 128, 256, 512)  'produces 113.555555555556
Debug.Print fAverageNumbers(98.765, 34.988, 1004.56)  'produces  379.437666666667 
Debug.Print fAverageNumbers(Null, "Number", 500, 100)  'produces 300
Debug.Print fAverageNumbers(16)  'produces 16 
注意:在我看来,ParamArray()语句是一种非常有价值且用途广泛的编程工具,每当不知道要传递给过程的参数的数量及其数据类型时,都可以使用它。

From: https://bytes.com/topic/access/insights/735467-using-paramarray

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值