将字符串放入Excel电子表格时,它会放入科学记数法或向上舍入

时间:2012-10-31 19:47:21

标签: excel vb6

我将一个字符串放入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在文本之前添加了一个撇号!谢谢大家。

2 个答案:

答案 0 :(得分:3)

我认为问题在于您尝试输入的号码无法完全由Excel支持。由于内部存储数字的方式,Excel对显示/表示的数字有限制。在Excel中,案例编号限制为15位精度(请参阅http://office.microsoft.com/en-us/excel-help/excel-specifications-and-limits-HP010073849.aspx),这不足以代表您的编号。

您可以输入数字作为字符串(“152..42”)并显示所有数字,但您将无法使用它执行精确的数学运算。

答案 1 :(得分: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