-
06-07-2019 - |
質問
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#プログラムがあります...(with 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で変更された値に変更する方法ですか????
ありがとう!!!
解決
Range
オブジェクトの Text
プロパティを使用して、フォーマットされたバージョンを返します
e.g。セルA1に0.77458が含まれ、小数点以下1桁にフォーマットされている場合
-
Range(" A1")。Value2
= 0.77458(Double
値として) -
Range(" A1")。Text
= 0.8(String
値として)
他のヒント
フォーマットは、データの表示方法に関する単なるプレゼンテーションの問題です。丸められた値を使用する場合は、Excelでround関数を使用するか、.netでMath.Roundを使用して、実際の値を丸める必要があります。