Lorsque vous mettez une string dans une feuille de calcul Excel, elle met en notation scientifique ou arrête

Je met une string dans excel. La string n'est souvent que des numbers numériques, mais peut avoir des caractères alpha ou hypens, etc.

Lorsque je ne définis pas le format de numéro ou le définis comme ça (où xlSheet (0) est Excel.Worksheet)

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

Il produit en notation scientifique.

Lorsque j'utilise ce code:

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

Il arrondit le nombre au plus proche 100 000 afin que les cinq derniers numbers soient 0 quand ils ne devraient pas être.

Devrait être: 1539648751235678942 Mais c'est: 1539648751235600000

Les cellules qui ont un trait d'union ou une lettre ne sont pas affectées et fonctionnent bien.

Toute aide serait grandement appréciée.

MODIFIER:

J'ajoute datatables comme ceci:

Je boucle et mets xlSheet(0).Cells(i, 14) = rs!value_number

Où est mon ADODB.Recordset

EDIT2: Herbert Sitz l'a obtenu en ajoutant une apostrophe avant le text! Merci tout le monde.

Je pense que le problème est que le nombre que vous essayez d'entrer ne peut pas être complété exactement par Excel. Excel a des limites sur les nombres qu'il affiche / représentent en raison de la façon dont les numéros sont stockés en interne. Dans les cas de Excel, les numbers sont limités à une précision de 15 numbers (voir http://office.microsoft.com/en-us/excel-help/excel-specifications-and-limits-HP010073849.aspx ), ce qui n'est pas suffisant pour représenter votre nombre.

Vous pouvez entrer le numéro en tant que string ("152..42") et tous les numbers seront affichés, mais vous ne pourrez pas effectuer d'opérations mathématiques exactes avec celui-ci.

Pour les nombres, Excel ne peut gérer que 15 numbers significatifs.

Si vous souhaitez stocker un nombre de plus de 15 numbers sans perdre de données, vous devez save datatables en tant que text.

Faire ce que vous avez fait résoudra le problème:

Vous pouvez effectuer l'une des opérations suivantes pour append vos numbers en tant que text:

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

Ou

 xlSheet(0).Cells(i, 14) = "'" & rs!value_number