2011-09-01 101 views
2

我有价格栏,其中价格以3位小数和4位小数位显示,例如123.456或123.4357。 因此,无论小数位数是多少,我都希望该值只有两位小数。 所以我选择的列和在VBA中我使用Selection.NumberFormat =“0.00” 这是由于我的四舍五入的值,即当我格式123.456和123.4357为0.00我得到123.46和123.44但我希望它是123.46和123.43。Excel VBA停止自动舍入

所以只是想知道有没有一种方法可以修剪值而不是四舍五入。 请给我一些示例。

预先感谢您。

+0

你最后一句,第一段说:“当我格式化123.456和123.4357 0.00我得到123.46和123.44,但我希望它是123.46和123.43。”应该以“我希望它是* 123.45 *和123.43”结束?这将符合您对修剪功能的要求而不是四舍五入。 – rajah9

回答

4

Excel有一个内置函数trunc,它应该为你做窍门。

这就是我放在a1:b2中。

123.456 =trunc(A1,2) 
123.4357 =trunc(A2,2) 

这将显示

123.456 123.45 
123.4357 123.43 
+0

@ rajah9 ....谢谢你 –

1

你可以把结果作为一个字符串,并提取您需要按照字符数:“”

dim a as double 暗淡S作为字符串 a = 123.4357 S = MID(一,1,FIND(,一) )& MID(a,FIND(“。”,a)+1,2)

+0

@ joshua9k .....谢谢 –

1

我不相信有一个内置的蒙版将舍去而不舍入,你可以使用另一列包含=TRUNC(A1, 2)