1

VBA で定義されたカスタム関数内で Excel 関数を使用するにはどうすればよいですか?

MRound や RoundDown のように機能するカスタム ラウンド関数が必要です。2500 万分の 1 に丸めます。

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 できるようにする、もう 1 つのレベルの機能が期待できます。たとえば、倍数が .25 でパーセンテージが .8 の場合、1.19 を 1.00 に丸め、1.20 を 1.25 に丸めます。

于 2013-10-23T12:50:53.980 に答える