【发布时间】:2016-10-04 12:09:32
【问题描述】:
我有一个 VBA 宏在单元格上执行一些操作。出于某种原因,其中一些四舍五入到小数点后两位,而我想要整数(小数点后五位)。我得到 0,13 而不是 0,1319:
Cells(rowWhere2Write + 2, 4).Value = Worksheets(originalSheet.Name).Cells(r, "AA").Value2 - Cells(rowWhere2Write + 4, 11)
在 Worksheets(originalSheet.Name).Cells(r, "AA").Value2 我得到这个值:0,1319 €(是的,它是货币格式,即使我只对 0,1319 感兴趣)。
为什么要四舍五入到小数点后两位?我怎样才能得到 4-5 个小数而不是两个?
有没有办法获得 5 位小数并用欧元货币格式化我的新单元格?到目前为止,我已经尝试过,但我也将数字截断为两位小数。
谢谢
【问题讨论】:
-
我建议您在所有情况下都使用
Value2而不是Value(或省略它),然后将您想要的Numberformat分配给单元格。 -
我试过这个: Cells(rowWhere2Write + 2, 4).NumberFormat = "0.00000" Cells(rowWhere2Write + 2, 4).Value2 = Worksheets(originalSheet.Name).Cells(r, "AA").Value2 - Cells(rowWhere2Write + 4, 11).Value2 但我只得到 0,13000,不能得到 0,1319。改变指令的顺序会让我得到同样的结果。 Cells(rowWhere2Write + 2, 4).Value 也是同样的结果。我可以尝试什么?
-
这两个单元格的值到底是多少?
-
啊,我明白了。事实证明,对于缺少的确切值,有一个减法运算使单元格恰好为 0,13 .. 真是巧合哈哈。谢谢