0

文字列をExcelに入れています。多くの場合、文字列は数字のみですが、英字やハイフンなどを含めることができます。

数値フォーマットを設定しない場合、またはこのように設定した場合 (xlSheet(0) は Excel.Worksheet です)

xlSheet(0).Columns("N:N").EntireColumn.Columns.NumberFormat = "@"

指数表記で出力します。

このコードを使用すると:

xlSheet(0).Columns("N:N").EntireColumn.Columns.NumberFormat = "0"

数値を最も近い 100,000 に切り上げて、最後の 5 桁が 0 であってはならないときに 0 になるようにします。

次のようにする必要があります: 1539648751235678942 しかし、次のとおりです: 1539648751235600000

ハイフンまたは文字を含むセルは影響を受けず、正常に機能します。

どんな助けでも大歓迎です。

編集:

次のようにデータを追加します。

ループして入れますxlSheet(0).Cells(i, 14) = rs!value_number

rs は私の ADODB.Recordset です

EDIT2: Herbert Sitz は、テキストの前にアポストロフィを追加することでそれを取得しました! みんな、ありがとう。

4

2 に答える 2

3

問題は、入力しようとしている数値が Excel で正確に対応できないことだと思います。Excel では、数値が内部的に保存される方法により、表示/表現する数値に制限があります。Excel の場合、数値は 15 桁の精度に制限されています ( http://office.microsoft.com/en-us/excel-help/excel-specifications-and-limits-HP010073849.aspxを参照)。番号。

数値を文字列 ("152..42") として入力すると、すべての数字が表示されますが、正確な数学演算を実行することはできません。

于 2012-10-31T19:57:18.270 に答える
1

数値の場合、Excel は有効数字 15 桁しか処理できません。

データを失わずに 15 桁を超える数値を保存する場合は、データをテキストとして保存する必要があります。

これまで行ってきたことを実行すると、問題が解決します。

次のいずれかを実行して、数値をテキストとして追加できます。

xlSheet(0).Cells(i, 14).Numberformat = "@"
xlSheet(0).Cells(i, 14) = rs!value_number

または

xlSheet(0).Cells(i, 14) = "'" & rs!value_number
于 2012-10-31T20:06:04.863 に答える