停止Excel在VBA制作的公式中将逗号更改为分号

时间:2015-10-27 13:29:38

标签: excel vba excel-vba

在公式中使用时,十进制数字(在我们的区域设置中,逗号是十进制符号)会更改为分号。

假设我有一个数字(我实际上只是从一个字段解析它,但我需要一个变量):

  

c = 10,5

如果我这样做:

  

sheet.Cells(1,1).Formula =“= SUM(”& c&“,10)”

整个公式变为:

  

= SUM(10; 5; 10)

逗号总是变为分号,这会破坏双号。 我可以使用 .FormulaLocal ,然后分号分隔符在公式中起作用,但逗号仍然有效,因此无法解决它。

更改区域设置不起作用,因为我需要分发它,并且无法让所有人更改区域设置。

任何可以拯救我的东西?

1 个答案:

答案 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)"