从VBA中改变逗号到分号停止Excel制作公式

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

比方说,我有一个数字(我实际上只是从一个字段parsing它,但我需要一个variables):

c = 10,5

如果我做:

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

整个公式变成:

= SUM(10; 5; 10)

逗号总是变成一个分号,遗忘了这个双号。 我可以使用.FormulaLocal ,然后在分子公式中使用分号分隔符,但是逗号仍然起作用,所以不能解决它。

更改区域设置不起作用,因为我需要分配区域设置,并且无法让每个人都更改区域设置。

任何可以救我的东西?

如果ci作为包含本地格式的double值的string,则可以使用:

 sheet.Cells(1,1).Formula = "=SUM(" & Str(CDbl(c)) & ",10)" 

CDbl会将语言环境string的值转换为Double格式, Str会使用它的一个string. 作为小数分隔符。

您也可以直接replaceDecimalSeparator

 sheet.Cells(1,1).Formula = "=SUM(" & Replace(c, Application.DecimalSeparator, ".") & ",10)"