如何在VBA中将数字格式化为保留两位小数的百万单位(如2.11 m)
解决VBA数字格式化问题:显示为带两位小数的百万单位
问题出在你用CStr()把单元格数值转成字符串后再调用Format——Format对字符串的格式化逻辑和数值完全不同,这才导致设置小数格式后返回完整数字。
直接对数值应用格式化规则就能解决问题,给你两种可行写法:
如果单元格存的是纯数值:
Format(Sheets("Latest").Range("P" & i).Value, "#0.00,,") & " m"解释:
#0.00,,里的两个逗号代表将原数值除以1000000(百万级),#0.00确保保留两位小数,最后拼接" m"补上单位。如果单元格可能是文本型的数值(比如从外部导入的),先转成数值类型再格式化:
Format(CDbl(Sheets("Latest").Range("P" & i).Value), "#0.00,,") & " m"
测试一下,比如单元格值是2110000,运行代码会返回2.11 m,完全符合需求。
内容的提问来源于stack exchange,提问作者Med123
相关产品推荐
相关产品推荐

