gpt4 book ai didi

Excel VBA 意外截断

转载 作者:行者123 更新时间:2023-12-04 21:40:14 27 4
gpt4 key购买 nike

所以我花了一天的大部分时间来调试我的 VBA 类模块,并遇到了一个令人担忧的现象。

在主电子表格上,我有一个格式为“货币”的单元格,精度为 9 位小数。在我的 VBA 类中,我有一个属性( double ),它在实例化时采用该单元格值。 IE。,

myClass.loanDefault_7 = Range("loanDefaults")(1,7)

但是,当我在分配后检查存储在 myClass.loanDefault_7 中的值时,它只有 4 位小数精度。

我的问题是为什么 VBA 会自动(未经我的许可)截断这个值?我想了解为什么会发生这种情况,以及将来如何防止这种情况发生。

任何帮助深表感谢!

最佳答案

尝试使用 Value2改为属性:

myClass.loadDefault_7 = Range("loadDefaults")(1,7).Value2

来自 MSDN:

The only difference between this property and the Value property is that the Value2 property doesn’t use the Currency and Date data types. You can return values formatted with these data types as floating-point numbers by using the Double data type.



似乎 Value属性将自动将值强制转换为货币数据类型(AFAIK 只能表示小数点右侧的 4 个数字)。

关于Excel VBA 意外截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15880131/

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