1

如何在 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
4

1 回答 1

3

我自己已经想通了,但是花了很长时间才找到我需要的帮助。所以这是解决方案。

尝试使用 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。

于 2013-10-23T12:50:53.980 回答