在公式中使用时,小数(在我们的区域设置中,逗号是小数符号)将更改为分号。
假设我有一个数字(实际上我只是从字段中解析它,但我需要它在变量中):
c = 10,5
如果我这样做:
sheet.Cells(1,1).Formula = "=SUM(" & c & ",10)"
整个公式变为:
=SUM(10;5;10)
逗号总是更改为分号,这会破坏 double 字。 我可以使用 .FormulaLocal,然后分号分隔符在公式中起作用,但逗号仍然起作用,因此无法解决问题。
更改区域设置不起作用,因为我需要分发它并且无法让每个人都更改区域设置。
有什么可以拯救我吗?
最佳答案
如果 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)"
关于vba - 阻止 Excel 在 VBA 制作的公式中将逗号更改为分号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33369323/