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

时间:2011-09-23 07:58:36

标签: excel vba

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

所以问题是我想将它转换为原始字符串。我在google上找到了格式化功能,我就像这样使用它了

format(3.32665E+34,"standard")

将其作为332,6650,033,266,510,000,000,000

如何解析它或取回原始字符串?我相信格式是vba中的功能。

4 个答案:

答案 0 :(得分:8)

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

如果不是这种情况,您可以在数字前添加单引号'标记,以将其存储为文本。这将确保Excel不会尝试将其视为数字,从而失去精确度。

答案 1 :(得分:3)

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

答案 2 :(得分:0)

需要将值作为字符串输入单元格。你需要做任何事情来插入值'

答案 3 :(得分:0)

如果您从一个已经创建的Excel文件开始,那么您已经丢失了信息:Excel已经尝试了解它的内容并且最佳猜测结果是错误的。您所能做的就是(如果您无法获取源数据)将返回到Excel文件的创建者并告诉他们出了什么问题。

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

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

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

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