2

我希望 Excel VBA 根据用户控件写入数字或百分比。

在 Excel 中,我可以按 Ctrl 1 来应用自定义格式,例如“文本:”0.0% 或“文本:”0.0。

我设法编写了文本,然后根据控制值使用 Format() 或 Round()。但是,格式有两个小数位,我想要一个小数位。

这是一些说明性代码。如上所述,我想控制百分比的小数位数(例如 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

关于如何做到这一点的任何指示都会很棒。在这两种情况下,我都将 0.000001 添加到 dvalue,因为我知道这有助于保持传统的舍入精度。

干杯蒂姆

4

2 回答 2

4

我认为这就是你要找的:

FormatPercent(1 + 0.000001, 1)

它格式化为百分比,第二个参数(在本例中为 1)是您想要的小数点数。

这是我找到它的地方。

这也是 Format 函数的一个很好的资源。

于 2013-04-30T15:02:46.323 回答
0

这是通过更改给定的Range.Style和/或Range.NumberFormat属性来完成的Range

例如:Selection.NumberFormat = "0.00000%"

一般来说,如何在 Excel-VBA 中了解这一点只需记录一个宏,您可以在其中执行您希望在宏中发生的事情。停止录制,转到 VBA 窗口并查看 Module1、Module2、... 模块之一中的新宏。

您实际上不需要对数字进行四舍五入来获得所需的格式,就像在工作表中手动应用数字格式时不需要那样。

于 2013-04-30T14:54:45.813 回答