2013-10-22 116 views
0

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

我想要一个类似于MRound和RoundDown的自定义轮功能。转移到最接近的百万分之二十五。

Public Function MRoundDown(Num As Double) As Double 

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

End Function 
+1

你可以通过Application.WorkSheetFunction访问很多函数,你可以尝试类似于Num = Application.WorksheetFunction.RoundDown(yourVariableHere) – Octavio

+0

我知道了,我已经找出了答案,但是我不能将它发布到另外7个小时。 –

回答

2

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

试图使用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 

还有的功能,我可以希望,是能够接受的百分比输入,然后能够ROUNDDOWN只有一个多层次其余部分低于倍数的x%。例如,以.25为倍数,以.8为百分比,我希望它将1.19调整为1.00和1.20至1.25。

相关问题