当将字符串放入Excel电子表格时,它会使用科学记数法或四舍五入

当将字符串放入Excel电子表格时,它会使用科学记数法或四舍五入,excel,vb6,Excel,Vb6,我正在将字符串放入excel。字符串通常仅为数字,但可以包含字母字符或hypens等 当我没有设置数字格式或这样设置时 (其中xlSheet(0)是Excel.工作表) 它以科学记数法输出 当我使用此代码时: xlSheet(0).Columns("N:N").EntireColumn.Columns.NumberFormat = "0" 它将数字四舍五入到最接近的100000,以便最后五位数字在不应该是0时为0 应为:1539648751235678942 但是是:1539648751235

我正在将字符串放入excel。字符串通常仅为数字,但可以包含字母字符或hypens等

当我没有设置数字格式或这样设置时 (其中xlSheet(0)是Excel.工作表)

它以科学记数法输出

当我使用此代码时:

xlSheet(0).Columns("N:N").EntireColumn.Columns.NumberFormat = "0"
它将数字四舍五入到最接近的100000,以便最后五位数字在不应该是0时为0

应为:1539648751235678942 但是是:1539648751235600000

带有连字符或字母的单元格不受影响,工作正常

任何帮助都将不胜感激

编辑:

我添加如下数据:

我循环并放入
xlSheet(0)。单元格(I,14)=rs!值\u编号

其中rs是我的ADODB.Recordset


编辑2:赫伯特·西茨在正文前加了一个撇号,就得到了它!谢谢大家。

我认为问题在于Excel无法精确容纳您试图输入的数字。由于数字在内部的存储方式,Excel对其显示/表示的数字有限制。在Excel中,数字的精度限制为15位(请参阅),这不足以表示您的数字


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

我认为问题在于Excel无法精确容纳您尝试输入的数字。由于数字在内部的存储方式,Excel对其显示/表示的数字有限制。在Excel中,数字的精度限制为15位(请参阅),这不足以表示您的数字


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

对于数字,Excel只能处理15个有效数字

如果要存储长度超过15位且不丢失数据的数字,必须将数据存储为文本

做你一直在做的事情可以解决问题:

您可以执行以下任一操作将数字添加为文本:

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


对于数字,Excel只能处理15位有效数字

如果要存储长度超过15位且不丢失数据的数字,必须将数据存储为文本

做你一直在做的事情可以解决问题:

您可以执行以下任一操作将数字添加为文本:

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


如何将字符串放入?.I循环并放入xlSheet(0)。单元格(I,14)=rs!value_number,其中rs是我的ADODB.recordset如何将字符串放入?.I循环并放入xlSheet(0)。单元格(I,14)=rs!value_number,其中rs是我的ADODB.recordset是否有一种不改变数据外观的方法来强制将其格式化为字符串?我再也不用做数学运算了。试试
xlSheet(0)。Cells(I,14)。text=rs!value_number
我不太使用Excel,也不需要在这里进行测试,但我认为强制数字文本格式的方法是在数字前面加一个撇号。输入单元格数据后,撇号应不可见。如果以编程方式设置值,则在数字字符串““”+mynumstring前面加一个撇号。有没有一种方法可以不更改数据的外观而强制将其格式化为字符串?我再也不用做数学运算了。试试
xlSheet(0)。Cells(I,14)。text=rs!value_number
我不太使用Excel,也不需要在这里进行测试,但我认为强制数字文本格式的方法是在数字前面加一个撇号。输入单元格数据后,撇号应不可见。如果以编程方式设置值,则在数字字符串“'”+mynumstring前面加一个撇号。很抱歉,有人已经得到了它。这也是答案。谢谢,有人已经拿到了。这也是答案。谢谢
xlSheet(0).Cells(i, 14) = "'" & rs!value_number