Excel VBA传输数字不应四舍五入

时间:2019-02-11 07:05:26

标签: excel vba

我正在使用此方法将表格的一行“复制”到另一个位置(范围,而不是表格):

rDestination.value = TableRow.value

该行的最后一个单元格是一美元的分数,例如0.01925美元。但是,将值复制到目标位置后,其读数为$ 0.02。

这不仅仅是格式化的事情;我看一下单元格的内部,它确实说了0.02美元。

我尝试在另一个代码之前和之后使用此代码:

 rDestionation.cells(5).NumberFormat = "0.00000"

还有

rDestination.Cells(5).NumberFormat = TableRow.Cells(5).NumberFormat 

但是它们不起作用。 (这并不奇怪,因为它实际上并不是受影响的格式)。

1 个答案:

答案 0 :(得分:1)

使用.Value2代替.Value

这是一篇博客文章,解释了两者之间的区别(即在处理货币时):https://fastexcel.wordpress.com/2011/11/30/text-vs-value-vs-value2-slow-text-and-how-to-avoid-it/

如此处所述:

  

.Value2实际上应该是默认值,并且绝对是默认值   使用99%的时间。