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,这样最后五位数字不应该是 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 位长度的数字而不丢失数据,则必须将数据存储为文本。

Doing what you've been doing will resolve the issue:

You can do either of the following to add your numbers as text:

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

Or

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