gpt4 book ai didi

excel - 与区域设置之间的转换行为不一致

转载 作者:行者123 更新时间:2023-12-02 11:21:32 26 4
gpt4 key购买 nike

我注意到 Excel 中出现奇怪且令人讨厌的行为,可能是由于比利时的数字表示法不同。当我在立即窗口中输入此内容时,我得到了违反直觉的结果:

 ?val("0,5")
0
?val("0.5")
0,5

所以我的解决方法是像这样使用它(通常字符串 "0,5"textbox.value 替换)

 val(replace("0,5",",","."))

此外,当使用 numberformat() 函数时,这也会让我陷入这种麻烦。

起初,我在文本框中的按键限制如下:

Select Case KeyAscii
Case vbKey0 To vbKey9, vbKeyBack, vbKeyClear, vbKeyDelete, vbKeyLeft, _
vbKeyRight, vbKeyUp, vbKeyDown, vbKeyTab, vbDecimal
Case Else
KeyAscii = 0
Beep
End Select

但是 vbDecimal 只允许我输入“.”作为小数点,然后在运行时它将被解释为该值的 1000 倍。

对此有任何了解吗?

最佳答案

Val 函数仅识别“.”作为小数点分隔符(您可以在相应的 MSDN article 中读取);其他 VBA 函数也会发生类似的情况。因此,如果您修改 VBA/Excel 所占用的小数分隔符,很多函数都不会关心(并且无论如何都会继续使用“.”)。我通常做的是设置一个自定义函数来分析所有输入数据(它可以仅包含您在问题中引用的基本 Replace ;但我也利用这一点并调整数字格式为我期望的格式,例如:最大小数位数),确保计算过程中所有小数分隔符均为“.”。完成所有计算后,我有另一个函数可以将输出调整为预期格式(通过修改 Excel 单元格或数值变量本身)。如果您知道的话,这不是理想的情况,也不是一个难以解决的问题。

关于excel - 与区域设置之间的转换行为不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18769026/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com