VBA Double as String 带逗号而不是点

mrb*_*ela 4 format excel vba

我正在寻找一种将 double 转换为字符串的解决方案,但该字符串的小数位前应该有一个逗号,而不是一个点。

“一个半”应该看起来像 1,5(德语符号)。

谢谢你的帮助!!

Bat*_*eba 5

不幸的是,在 VBA 中,您无法轻松编写与语言环境无关的代码。也就是说,您在进行CStr演员表时不能指定语言环境。

一种解决方法是将像 0.5 这样的 double 转换为字符串,然后看看你最终会得到什么。如果你结束了,0,5那么你就在德语(等)语言环境中,你不需要做任何其他事情。

如果你最终得到,0.5那么你知道你需要进行转换。然后你只需要遍历你的字符串,用逗号替换点,反之亦然(如果你的字符串有数千个分隔符,反之亦然位很重要)。你可以用Replace它。

  • 我认为这并不完全正确。[语言设置可通过应用程序对象获得](http://msdn.microsoft.com/en-us/library/office/ff821852%28v=office.15%29.aspx)(至少在 Excel 中)并暴露于客户端通过 [MsoLanguageId 枚举](http://msdn.microsoft.com/en-us/library/aa432635(v=office.12).aspx)。 (2认同)

Jea*_*nno 5

CStr 和 Replace 的组合即可完成这项工作。

Function Dbl2Str(dbl As Double) As String
    Dbl2Str = Replace(CStr(dbl), ".", ",")
End Function
Run Code Online (Sandbox Code Playgroud)