我使用的是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...IE。进行矩阵加法,...现在我有以下结果

       F    G
  8   0.5  0.7
  9   0.7  0.7

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

     F  G
 8   1  1
 9   1  1

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

excel中是否可以在数字格式之后进行更改,...到单元格的实际值2...但不仅仅是外表!因为当我问例如

MsgBox Range("F8").Value2

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

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

谢谢!!!

有帮助吗?

解决方案

使用 Text 的财产 Range 返回格式化版本的对象

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

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

其他提示

格式化只是关于数据显示方式的演示问题。如果你想使用舍入值,你应该使用圆函数在Excel中或在使用Math.Round的.net中舍入实际值。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top