在公式中使用时,十进制数字(在我们的区域设置中,逗号是十进制符号)会更改为分号。
假设我有一个数字(我实际上只是从一个字段解析它,但我需要一个变量):
c = 10,5
如果我这样做:
sheet.Cells(1,1).Formula =“= SUM(”& c&“,10)”
整个公式变为:
= SUM(10; 5; 10)
逗号总是变为分号,这会破坏双号。 我可以使用 .FormulaLocal ,然后分号分隔符在公式中起作用,但逗号仍然有效,因此无法解决它。
更改区域设置不起作用,因为我需要分发它,并且无法让所有人更改区域设置。
任何可以拯救我的东西?
答案 0 :(得分:3)
如果c i作为包含本地格式的double值的字符串,则可以使用:
sheet.Cells(1,1).Formula = "=SUM(" & Str(CDbl(c)) & ",10)"
CDbl
会将语言环境字符串中的值转换为Double格式,Str
将使用.
作为小数分隔符生成字符串。
您也可以直接替换DecimalSeparator
:
sheet.Cells(1,1).Formula = "=SUM(" & Replace(c, Application.DecimalSeparator, ".") & ",10)"