RoundDown'参数在公共函数中无效'

时间:2015-01-30 23:11:47

标签: excel excel-vba vba

我正在调用一个函数,我需要向下舍入一个值,但它有一个编译错误:参数对于.RoundDown在以下代码中无效:

Public Function AbilityMod(ByVal x As Integer) As Integer
AbilityMod = WorksheetFunction.RoundDown((x - 10) / 2)
End Function

我是VBA的新手所以也许我错过了一些明显的东西?

1 个答案:

答案 0 :(得分:2)

您错过了第二个强制性参数Arg2,即您希望将数字向下舍入的位数:

Public Function AbilityMod(ByVal x As Integer) As Integer
AbilityMod = WorksheetFunction.RoundDown((x - 10) / 2,0)
End Function

我想你希望它为0,因为你声明函数的返回为Integer

在该函数的官方documentation中查找更多内容。

但是,如果您使用的参数不同于0(例如,1),那么无论如何都会得到一个舍入数字,因为您的函数正在返回As Integer。您可以使用13测试它:

(x-10)/2 --> 1.5
RoundDown((x-10)/2,1) --> 1.5
AbilityMod --> 2 (because AbilityMod As Integer --> 1.5 is rounded to 2).