【问题标题】:Stop excel (or VBA) rounding decimals停止 excel(或 VBA)四舍五入的小数
【发布时间】: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 .. 真是巧合哈哈。谢谢

标签: vba excel format currency


【解决方案1】:

这是 NumberFormat 的问题... 试试 selection.NumberFormat=""

如果 € 对您很重要,请尝试 selection.NumberFormat="0.00????€"(如果您愿意,可以更多?)

【讨论】:

  • 你能说得更具体点吗?检查下面的评论,我无法让它工作。
  • 您的单元格包含 0.13 并且您需要更改提供此代码的代码,或者它包含 0.1319 但显示 0.13 并且 selection.NumberFormat="0.00??€" 将起作用...
  • 啊,我明白了。事实证明,对于缺少的确切值,有一个减法运算使单元格恰好为 0,13 .. 真是巧合哈哈。谢谢
猜你喜欢
  • 2016-11-24
  • 2013-04-07
  • 2021-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-06
相关资源
最近更新 更多