2

ユーザー コントロールに応じて、Excel VBA に数値またはパーセンテージを書き込んでもらいたいと考えています。

Excel では、Ctrl 1 を押して、"Text:" 0.0% や "Text:" 0.0 などのカスタム フォーマットを適用できます。

テキストを書き、コントロール値に応じて Format() または Round() を使用することができました。ただし、Format は小数点以下 2 桁なので、小数点以下 1 桁でお願いします。

ここにいくつかの例示的なコードがあります。上記のように、パーセンテージの小数点以下の桁数を制御したいと思います (例: 0、1、2)。

Select Case sControl
Case "Percentage"
  oRange = "Text: " & Format(dvalue + 0.000001, "Percent")
Case "Numeric"
  oRange = "Text: " & Round(dvalue + 0.000001, 1)
End Select

これを行う方法についての指針は素晴らしいでしょう。どちらの場合も dvalue に 0.000001 を追加しています。これは、従来の丸め精度を維持するのに役立つことを理解しているためです。

乾杯ティム

4

2 に答える 2

4

これがあなたが探しているものだと思います:

FormatPercent(1 + 0.000001, 1)

パーセンテージとしてフォーマットされ、2 番目の引数 (この場合は 1) は必要な小数点の数です。

これが私が見つけた場所です。

これは、Format 関数の非常に優れたリソースでもあります。

于 2013-04-30T15:02:46.323 に答える
0

How this is done is by changing the Range.Style and/or the Range.NumberFormat property for a given Range.

For example: Selection.NumberFormat = "0.00000%"

In general how to get to know this in Excel-VBA is simply by recording a macro where you do exactly what you want to happen in your macro. Stop recording, go to the VBA window and look at the new macro in one of the Module1, Module2, ... modules.

You don't actually need to round the numbers to get the formatting that you want, just as you wouldn't need to when you apply number formatting manually in your sheets.

于 2013-04-30T14:54:45.813 に答える