我正在使用此方法将表格的一行“复制”到另一个位置(范围,而不是表格):
rDestination.value = TableRow.value
该行的最后一个单元格是一美元的分数,例如0.01925美元。但是,将值复制到目标位置后,其读数为$ 0.02。
这不仅仅是格式化的事情;我看一下单元格的内部,它确实说了0.02美元。
我尝试在另一个代码之前和之后使用此代码:
rDestionation.cells(5).NumberFormat = "0.00000"
还有
rDestination.Cells(5).NumberFormat = TableRow.Cells(5).NumberFormat
但是它们不起作用。 (这并不奇怪,因为它实际上并不是受影响的格式)。
答案 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%的时间。