我正在使用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#程序将读取此范围值...(带范围(...)。value2)... 然后将尝试找到不同的值,但c#假定它读取上述情况1,1,1,1 ......这在现实中是不正确的。此外,c#程序现在将使用这些不同的值来使用equals运算符格式化单元格,在这种情况下,单元格值都不等于1 ...
在excel中可以在numberformat之后进行更改,...到单元格的真实值2 ...但不仅仅是外观!因为当我要求举例时
MsgBox Range("F8").Value2
它显示我0.5,但由于我已经改变了单元格格式,我想看到1而不是...我不想舍入Range(“F8”)的值。值2,因为它只适用于特定的案件。
我的问题是如何在numberformat之后将F8:G9范围的值更改为numberformat更改它们的值????
感谢!!!
答案 0 :(得分:1)
使用Text
对象的Range
属性返回格式化版本
e.g。如果单元格A1包含0.77458并且格式化为一个小数位,那么
Range("A1").Value2
= 0.77458(作为Double
值)Range("A1").Text
= 0.8(作为String
值)答案 1 :(得分:0)
格式化只是关于数据显示方式的演示问题。如果你想使用舍入值,你应该使用圆函数在Excel中或在使用Math.Round的.net中舍入实际值。