如何在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。
您实际上并不需要将数字四舍五入来获得所需的格式,就像您在工作表中手动应用数字格式时不需要的那样。