如何在Excel VBA中应用自定义格式(例如“文本”:0.0%)

我希望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,因为我知道这有助于维持传统的舍入精度。

干杯蒂姆

我认为这是你正在寻找的:

 FormatPercent(1 + 0.000001, 1) 

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

这是我find它的地方。

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

这是如何完成的是通过改变Range.Style和/或Range.NumberFormat属性给定的Range

例如: Selection.NumberFormat = "0.00000%"

一般来说,如何在Excel-VBA中了解这一点,只需简单地通过录制一个macros来完成你想要在macros中发生的事情。 停止录制,进入VBA窗口,查看Module1,Module2,…模块之一中的新macros。

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