如何在 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
我自己已经想通了,但是花了很长时间才找到我需要的帮助。所以这是解决方案。
尝试使用 RoundDown 的问题是我没有指定要从中调用该对象的库。应用程序是 Excel,WorksheetFunction 是定义 RoundDown 对象的位置。
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% 时才能进行 RoundDown。例如,给定 0.25 作为倍数,0.8 作为百分比,我希望它舍入 1.19 到 1.00 和 1.20 到 1.25。