我正在使用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更改它们的值?
谢谢!!!
2 回答
使用
Range
对象的Text
属性返回格式化版本例如如果单元格A1包含0.77458并且格式化为一个小数位
Range("A1").Value2
= 0.77458(作为Double
值)Range("A1").Text
= 0.8(作为String
值)格式化只是关于数据显示方式的演示问题 . 如果要使用舍入值,则应使用舍入函数在Excel中或使用Math.Round在.net中舍入实际值 .