【发布时间】:2017-12-07 16:08:32
【问题描述】:
我正在尝试制作一个采用所选单元格的宏,替换“。”用 ",",然后将其更改为 double,将其除以 2 并四舍五入。
单元格示例:
0.910 1.000
For Each Cell In Selection
Cell.Value = Replace(Cell, ".", ",")
Cell = CDbl(Cell.Value)
Cell = Cell / 2
Cell = Round(Cell, 4)
Next Cell
我希望得到:
0.4550 0.5000
问题是,如果我有一个大于 1.0 的数字,它只会删除“。”并且不会用任何东西替换它,并且由于单元格有 3 位小数,我突然得到 1000 而不是 1。
所以我得到:
0.4550 500
有什么错误的建议吗?
【问题讨论】:
-
你试过
Format(Cell,"#,0000")吗? -
你为什么不只是除以 2?
-
你为什么要替换“.”带“,”?你得到你想要的;将“,”替换为“。”,然后将值加倍,将为您提供 1000。对于任何大于 1.0 的数字,您只需重新格式化单元格以仅显示 1 个小数位即可获得所需的结果。
-
或者只使用Round函数。见Link
-
嗨,@Brownish Monster - 试过了,没用。