我正在编写一个宏来解析我的Excel工作表中单元格中的字符串,并应返回该字符串中的三个坐标。我可以让脚本解析字符串并创建一个“coordinateHolder”数组来保存三个坐标。我的问题是,当我更新单元格以显示坐标时,excel显示不显示整个坐标。
例如,如果坐标字符串最初是“1234.1324123,12345.23521,2384.1234253”,我的代码会将我的x,y和z坐标单元更新为“1234.132”,“12345”,“2384.1234”
我的意思是:
(这个在单元格中显示科学记数法,在公式构建器栏中显示缩短的双精度数)
我的代码:
Dim i, j As Integer
Dim coordinates As String
Dim coordHolder As Variant
i = 2
j = 1
Range("I2:K2").Value = Range("E2:G2").Value
Do While Cells(i, j) <> ""
coordinates = Cells(i, j)
coordinates = Replace(coordinates, ",", "")
coordHolder = Split(coordinates, " ")
For a = 0 To UBound(coordHolder)
Cells(i, 7 + a) = coordHolder(a)
Next a
i = i + 1
Loop
答案 0 :(得分:1)
Excel对数字的限制为15位。具有更多数字的任何数字将在较低幅度中失去精度以启用数字显示。您的数据的值超出限制并将被截断。
513402938412.123仅显示15位数字。其余小数位已被删除。与值的大小相比,4位或更多小数的显着性相反,因此Excel认为第三次小数之后的数字是可有可无的。
如果要保留值中的所有数字,则需要将其转换为文本并确保它仍为文本,并且不会再次转换为数字。为此,您可以在任何数字前加上撇号。
如果某个单元格包含值5134029388412.12341234
,则会将其截断。包含值'5134029388412.12341234
的单元格将被视为文本并保持不变。