【发布时间】:2016-11-13 07:38:38
【问题描述】:
假设我在记事本中有以下数字:
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.04
- 4.0,不是 4
- 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 Statement,但是这些方法的问题是:
- 代码可能很长而且看起来很乱。
- 如果数字改变了,那么条件也必须改变。
所以我的问题是:
如何让Excel不截断十进制数末尾的零?
我想将值保留为数字,不是文本。
这种表示在财务数据中确实很重要,例如:外汇或货币汇率。
【问题讨论】:
-
粘贴前需要将列格式改为Text。
-
如果要使用条件格式,您会使用什么条件?
-
为什么需要尾随的 0(它们似乎没有提供任何信息,如数字)?
-
@ScottHunter - 据我了解这个问题(我有一些先验知识)是为了证明应该以小数点后 4 位精度显示的货币总是以这种方式显示。不幸的是,其他货币可能只需要小数点后 2 位的精度。我认为关键是货币标识符。
-
Anastasiya - 如果您没有货币标识符列,那么这些数字无论如何都是没有意义的。为什么您如此不愿意透露这条非常重要的信息? (顺便说一句,投反对票的人可能不喜欢被告知数字作为文本是一个坏主意。有一个支持+1)
标签: vba excel formatting number-formatting