RoundDown的论点在公共职能上是无效的
我正在调用一个函数,我需要舍入一个值,但它有一个编译错误:参数无效.RoundDown在下面的代码中:
Public Function AbilityMod(ByVal x As Integer) As Integer AbilityMod = WorksheetFunction.RoundDown((x - 10) / 2) End Function
我是VBA新手,所以也许我错过了一些明显的东西?
你错过了第二个强制性的论点, Arg2
,即你想把你的数字Arg2
的位数:
Public Function AbilityMod(ByVal x As Integer) As Integer AbilityMod = WorksheetFunction.RoundDown((x - 10) / 2,0) End Function
我想你想要0,因为你声明你的函数返回为Integer
。
在函数的官方文档中find更多信息。
但是,如果您使用的参数不是0
(例如, 1
),您将无论如何将获得一个四舍五入的数字,因为您的函数返回As Integer
。 你可以用13
来testing它:
(x-10)/2 --> 1.5 RoundDown((x-10)/2,1) --> 1.5 AbilityMod --> 2 (because AbilityMod As Integer --> 1.5 is rounded to 2).