Decimal number conversion VBA:Excel I列小数分隔符兼容问题求无循环方案
VBA处理Excel小数分隔符问题的简便办法
一行代码改整列格式
直接给I列设置带点的数字格式,不用循环:
Columns("I").NumberFormat = "0.00" ' 小数位数可以按需调整,比如"0.0"或者"General"
这样Excel会按照点作为小数分隔符来识别和显示数值,解决除法操作时的格式不兼容问题。
文本转数值的快捷方案
要是单元格里存的是文本格式的数字,光改格式没用,可以用文本分列的VBA代码批量转换:
Columns("I").TextToColumns Destination:=Columns("I"), DataType:=xlDelimited, FieldInfo:=Array(1, 1)
这行代码相当于手动执行“数据”栏的文本分列功能,一步把整列文本格式的数字转成数值,自动适配系统的小数分隔符设置。
直接计算时适配分隔符
不想改格式的话,也可以在计算时直接替换逗号为点,一行代码完成整列除法:
Columns("I").Value = Evaluate("IF(ISNUMBER(I:I),I:I/[你的数字],VALUE(SUBSTITUTE(I:I,"","","".""))/[你的数字])")
把[你的数字]换成实际要除的数值即可,它会自动判断单元格是数值还是带逗号的文本,统一处理后完成计算。
内容的提问来源于stack exchange,提问作者Keyser Soze
相关产品推荐
相关产品推荐

