背景:我正在从JSON格式的API接收Excel应用程序的数据。为此,我将数值作为字符串接收,因为以JSON发送的所有内容自然都是文本格式,因此VBA也会对其进行解释。因为我位于丹麦,所以使用了与Excel中的本机不同的十进制分隔符(我的丹麦语版本使用,
作为分隔符,而不是.
)。
Case:这会造成很多麻烦,因为在将字符串转换为数字时,Excel会将其解释为千位分隔符。
搜索答案,我发现最好的解决方案通常是在使用VBA时通过CDbl(string to convert to number)
将字符串转换为两倍。
通常是这种情况,但就我而言,我收到的数字带有很多小数,例如:“ 9.300000190734863
”。
[执行CDbl("9.300000190734863")
时会产生非常大的整数:9,30000019073486E+15
[此外,我也不认为在我的情况下使用replace()
方法是可行的,因为我可能同时拥有同时使用十进制和千位分隔符的数据,这使我的结果容易出现替换错误。
但是,在我的情况下,将字符串值直接插入Excel中的单元格会将数字正确转换为9,30000019073486
。
问题:是否可以正确地模仿或利用Excel在将字符串插入单元格时明显使用的此功能?
我已经搜索了很长时间,除了显而易见的之外,我没有找到其他解决方案:将值插入单元格。这里的问题是,这给了我一些性能上的开销,我宁愿避免。
您可以通过三个步骤将输入中的句点和逗号的位置转换为双精度,然后将其转换为双精度: