假设我在记事本中有以下随机数:

1.19
0.040
10.1123
23.110
21.223
2.35456
4.0
10234.0009
456798.7500
123
34.560
40060
33.7876


如果我复制上面的数字并将其粘贴到Excel中,则数字格式将更改为此

1.19
0.04
10.1123
23.11
21.223
2.35456
4
10234.0009
456798.75
123
34.56
40060
33.7876


我打算复制粘贴数字而不更改其原始格式,例如:


0.040保留0.040,而不是0.04;
4.0保持4.0,而不是4;
456798.7500保留456798.7500,而不是456798.75;等等。


我知道我可以使用条件格式,例如

If condition_1 Then
   Cells(...).NumberFormat = "0.00"

ElseIf condition_2 Then
   Cells(...).NumberFormat = "0.000"

...

Else
   result_else

End If


或使用Select ... Case语句,但是这些方法的问题是:


该代码可能很长,看起来很凌乱。
如果数字改变,那么条件条件也必须改变。


所以我的问题是:


如何使Excel在十进制数字的末尾不截断0?


附言我想将值保留为数字,而不是文本。



附录:我不明白为什么要对这个OP进行否决,因为这种表示形式在财务数据中很重要,例如:外汇或货币汇率。

最佳答案

如果我将原始数据放在A列中(具有您发布的格式)并运行此命令:

Sub CopyFull()
    Dim A As Range, B As Range

    Set A = Range("A1:A13")
    Set B = Range("B1:B13")
    A.Copy B
End Sub


复制的数据项将具有与原始格式相同的格式:

excel - 如何使Excel在格式化十进制数字时不会截断0?-LMLPHP

因此,如果A9的NumberFormat为0.0000,那么B9也是如此。

编辑#1:

如果数据在打开的NotePad进程中开始,我将:


手动(或以编程方式)将数据存储为文本文件(.txt)
将文本文件作为文本导入到列中
将列中的每个项目转换为与文本格式一致的NumberFormat的数字

07-25 23:56
查看更多