【问题标题】:excel numberformatexcel数字格式
【发布时间】:2010-11-04 21:14:40
【问题描述】:

我正在使用 excel 2007... 我有以下范围...

      D    E       G   H
  5   1    2       1   1
  6   2    2       1   1

现在我选择 F8:G9 范围并编写以下公式“=D5:E6*0.2+G5:H6*0.3”并按 CTRL+SHIFT+ENTER... 即进行矩阵加法,... 现在我有以下结果

       F    G
  8   0.5  0.7
  9   0.7  0.7

现在我选择此结果范围并将其单元格格式更改为数字格式为小数点后 0.... 现在我有以下结果

     F  G
 8   1  1
 9   1  1

现在我有 c# 程序,它将读取这个范围值...(使用 range(...).value2)... 然后将尝试找到不同的值,但 c# 假定它在上述情况下读取它 1,1,1,1... 这在现实中是不正确的。此外,c# 程序现在将使用这些不同的值通过使用等号运算符来用颜色格式化单元格,在这种情况下,没有一个单元格值等于 1...

在 excel 中是否可以在 numberformat 之后进行更改,... 到单元格的实际 value2... 但不仅仅是外观!因为当我问的时候

MsgBox Range("F8").Value2

它显示 0.5,但由于我更改了单元格格式,我希望看到 1...我不想四舍五入 Range("F8").Value2 的值,因为它仅适用于特定案子。

我的问题是如何在 numberformat 之后将 F8:G9 范围的值更改为 numberformat 已更改它们的值????

谢谢!!!

【问题讨论】:

标签: c# excel excel-2007 number-formatting vba


【解决方案1】:

使用Range对象的Text属性返回格式化版本

例如如果单元格 A1 包含 0.77458 并且格式为小数点后一位,则

  • Range("A1").Value2 = 0.77458(作为Double 值)
  • Range("A1").Text = 0.8(作为String 值)

【讨论】:

    【解决方案2】:

    格式只是关于数据如何显示的演示问题。如果您想使用四舍五入的值,您应该对实际值进行四舍五入,或者在 Excel 中使用 round 函数,或者在 .net 中使用 Math.Round。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-13
      • 2017-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多