Excel 防止将逗号分隔的数字列表解释为单个大值

Excel 防止将逗号分隔的数字列表解释为单个大值,excel,vba,Excel,Vba,3326650033266510033265200332665300是原始值,单元格应如下所示:3326650033266510033265200332665300但我在excel中看到的单元格值是3.32665E+34 问题是我想把它转换成原始字符串。我在谷歌上找到了格式函数,我就是这样使用的 format(3.32665E+34,"standard") 将其命名为3326650033266510000000000 如何解析它或获取原始字符串?我相信格式是vba中的函数。如果您希望精确保存值

3326650033266510033265200332665300
是原始值,单元格应如下所示:
3326650033266510033265200332665300
但我在excel中看到的单元格值是
3.32665E+34

问题是我想把它转换成原始字符串。我在谷歌上找到了格式函数,我就是这样使用的

format(3.32665E+34,"standard")
将其命名为
3326650033266510000000000


如何解析它或获取原始字符串?我相信格式是vba中的函数。

如果您希望精确保存值,请将数据存储为字符串,而不是数字。您使用的数据类型根本无法执行您要求它执行的操作。

该值需要作为字符串输入单元格。您需要制作插入值的任何内容,并使用

返回值。如果您从已创建的Excel文件开始,那么您已经丢失了信息:Excel试图理解给出的内容,但其最佳猜测结果是错误的。你所能做的(如果你不能得到源数据)就是回到Excel文件的创建者那里,告诉他们出了什么问题

如果您从导入的文本文件开始,那么新闻会更好:

如果使用文本导入向导手动导入,则在“第3步,共3步”中,需要将问题字段的“列数据格式”设置为“文本”

如果使用宏,则需要为执行相同操作的
TextFileColumnDataTypes
属性指定一个值。最简单的方法是使用宏记录器


如果希望字符串中的四个值是单独的单元格,请再次查看文本导入向导设置:在第1步(共3步)中,需要设置“分隔”数据类型(通常为默认值),在第2步中,确保选中“逗号”。

Excel有15位精度限制。如果在访问文件时数字已经显示为这样,则无法恢复数字-您已经丢失了一些数字。VBA代码和公式对您没有帮助


如果不是这样,您可以在数字前添加一个单引号,将其存储为文本。这将确保Excel不会试图将其视为一个数字,从而失去精度。

原始值来自何处?密码?用户?导入的文本文件?其他地方?我们知道这一点可能很重要,因为在写入单元格时需要保留正确的值,以防止Excel做出错误的假设并丢失信息。是的,输入的文本文件中的数字是由机器生成的,机器将其插入,但Excel将其转换为指数数字!这个值是由一台机器插入的,我刚得到一个文件,这台机器离我有几英里远。我需要一些东西将它们分割成原始字符串。所以,你的意思是你想把字符串插入4个单元格?你需要详细解释数据是如何从远程机器传输到电子表格的。目前,无论是什么过程,它都会将数据放入一个单元格,excel将其解释为一个数字(因为excel单元格限制为15位有效数字,所以您可以得到所描述的值)。从远程来源“插入”数据的方式多种多样,我们需要了解详细信息,以便提出修改方法。我既喜欢这个答案,又讨厌它的必要性