Function 如何在VBA中定义的自定义函数中使用excel函数?

Function 如何在VBA中定义的自定义函数中使用excel函数?,function,vba,call,rounding,defined,Function,Vba,Call,Rounding,Defined,如何在VBA中定义的自定义函数中使用excel函数 我想要一个像MRound和RoundDown一样的自定义舍入函数。四舍五入到最接近的25百万分之一 Public Function MRoundDown(Num As Double) As Double Num = Num * 40000 Num = RoundDown(Num, 0) Num = Num / 40000 End Function 我自己已经弄明白了,但是我花了太长时间才找到我需要的帮助。这就是解决办法 尝试使用舍入的问题

如何在VBA中定义的自定义函数中使用excel函数

我想要一个像MRound和RoundDown一样的自定义舍入函数。四舍五入到最接近的25百万分之一

Public Function MRoundDown(Num As Double) As Double

Num = Num * 40000
Num = RoundDown(Num, 0)
Num = Num / 40000

End Function

我自己已经弄明白了,但是我花了太长时间才找到我需要的帮助。这就是解决办法

尝试使用舍入的问题是,我没有指定从中调用该对象的库。应用程序是Excel,工作表函数是定义舍入对象的位置

Public Function MRoundDown(Num As Double) As Double
Num = Num * 40000
Num = Application.WorksheetFunction.RoundDown(Num, 0)
Num = Num / 40000
  MRoundDown = Num
End Function
我进一步改进了代码,如下所示:

Public Function MRD(Num As Double, Multiples As Double) As Double
Num = Num / Multiples
Num = Application.WorksheetFunction.RoundDown(Num, 0)
Num = Num * Multiples
MRD = Num
End Function

我希望还有一个更高级别的功能,能够接受百分比输入,然后只有在剩余值低于倍数的x%时才能进行舍入。例如,如果将.25作为倍数,将.8作为百分比,我希望将其舍入1.19到1.00,将其舍入1.20到1.25。

您可以通过Application.WorkSheetFunction访问许多函数,您可以尝试Num=Application.WorkSheetFunction.RoundDown(yourVariableHere)之类的方法,我知道,我已经猜出了答案,但在接下来的7个小时内我无法发布。