繁体   English   中英

如何更改VBA数组十进制分隔符?

[英]How to change VBA array decimal separator?

我想将VBA数组十进制分隔符更改为点。 我将其视为逗号。 我尝试了: Application.DecimalSeparator="."

但是,当我获得MyString = matrix(2, 1) ,VBA数组中的小数点分隔符会以逗号形式恶意保留。 我无法除掉害虫。

有没有一种方法可以检测使用哪个VBA阵列系统分隔符?

在此处输入图片说明

VBA使用从平台各个部分提取的很多位来计算要使用的十进制和千位分隔符。 Application.DecimalSeparator更改了一些实例(大部分在工作簿上); 您可以在OS级别上调整其他设置,但即使在某些情况下,您也无法更改设置。

最好的选择是编写一个简单的函数,根据例如1.2到字符串的试验转换来检查平台使用的分隔符,并查看第二个字符最终是什么。 粗俗但美丽。

有了这个,您就可以强制互换。 和,视情况而定。 当然,尽管如此,您必须谨慎管理所有字符串以对自己的数字进行解析。

就我个人而言,尽管我认为这是与系统设置不必要的斗争的缩影。 因此,我会保留一切。 换句话说,笑着忍受。

您必须在系统设置中进行更改,Excel会从系统中获取这种设置。

我最终得到了该功能,该功能正是我想要的。 谢谢大家的回答,评论和提示。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM