How to change VBA array decimal separator?

时间:2017-11-02 15:41:00

标签: vba excel-vba excel

I would like to change VBA array decimal separator to dot. I see it as comma. I tried: Application.DecimalSeparator="."

But when I get the value as MyString = matrix(2, 1), the decimal separator in VBA arrays maliciously persists as comma. I am not able to get rid of the pest.

Is there a way to detect which system separator for VBA arrays is used?

enter image description here

3 个答案:

答案 0 :(得分:2)

VBA使用从平台的各个部分抽取的相当多的位来计算出要使用的十进制和千位分隔符。 Application.DecimalSeparator更改了一些实例(主要是在工作簿上);您可以在操作系统级别调整其他人,但即使这样,您也会遇到无法更改设置的情况。

你最好的办法是编写一个简单的函数来检查你的平台使用哪个分隔符,基于对1.2的字符串的试验转换,看看第二个字符到底是什么。原油但很奇怪。

有了这个,你可以强制交换。并酌情。当然,然而你必须自己管理所有字符串到数字解析,并且需要小心。

就个人而言,我认为这是对您的系统设置进行不必要的斗争的缩影。所以我会把一切都留下来;换句话说,咧嘴一笑。

答案 1 :(得分:0)

You have to change it in system settings, Excel takes this kind of settings from system.

答案 2 :(得分:0)

我最终得到了这个功能,它完全符合我的要求。谢谢大家的回答,评论和提示。

Function GetVBAdecimalSep()
    Dim a(0) As Variant
    a(0) = 1 / 2
    GetVBAdecimalSep = Mid(a(0), 2, 1)
End Function