gpt4 book ai didi

excel - 为什么VBA自动将小数更改为逗号?

转载 作者:行者123 更新时间:2023-12-02 04:43:04 34 4
gpt4 key购买 nike

我有一个用 VBA 编写的 Excel 宏。昨天一切正常,今天早上 VBA 将小数点更改为逗号。即从 5.1 到 5,1。

我使用的是德语系统,并在 Excel 的高级选项中设置了点为小数,逗号为千。

例如,我在 Excel 工作表中将每日 scrum session 的值设置为 3.75

Excel表格输入:
screenshot

当我使用函数读取值时,例如:

Sub TestFunction()
MsgBox (Sheets("Input_Parameters").Cells(25, 2))
End Sub

我用逗号获取值。

VBA函数输出:
output

VBA 环境中是否有设置可以解决此问题,或者我是否缺少某些内容。我所有的宏备份都显示出相同的效果,所以我知道我在今天的版本中没有对代码进行任何更改。

最佳答案

这是具有德语默认区域设置 Windows 设置的德语系统上的正常行为(在 Windows 设置中,逗号作为小数分隔符,点作为千位分隔符)。

MsgBox .Cells(25, 2).Value

返回具有 Windows 区域设置默认格式的值。

您在 Excel 选项中设置的 Application.DecimalSeparator 会影响单元格中显示的内容,但不会影响消息框显示的内容。

因此您可以使用

MsgBox .Cells(25, 2).Text

它以文本形式返回值,格式与单元格中相同。

<小时/>

另一个解决方法是用 replace() 函数替换逗号:

MsgBox Replace(.Cells(25, 2).Value, ",", ".")

关于excel - 为什么VBA自动将小数更改为逗号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43863482/

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