質問

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を使用して、実際の値を丸める必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top