gpt4 book ai didi

vba - .Value 仅返回货币格式的值的小数点后 4 位

转载 作者:行者123 更新时间:2023-12-02 19:26:16 25 4
gpt4 key购买 nike

我有以下 VBA 函数,用于从具有相同列但不同行的其他位置检索货币值:

Function GetValue(RefCell As Range) As Double

Dim i As Integer

i = Application.Caller.Column - RefCell.Column

Obtain = RefCell.Offset(0, i).Value

End Function

这是设置:

Column1 | Column2
Test 1 | 0.11111
Test 2 | $0.11111

使用 GetValue(Test1) 给我 0.11111 美元(小数点后 5 位)。但是,GetValue(Test2) 的结果为 0.11110 美元,仅包含前 4 位小数。如果输入是货币格式而不是数字格式,为什么该函数只返回 4 个小数位?我想从货币格式的单元格中检索包含所有小数位的最准确数字 - 即 $0.11111 而不是 $0.11110

最佳答案

Range.Value property具有一些区域货币特性;其中之一可以是 4 位精度(对于某些区域货币变量类型很常见)。

使用Range.Value2 property为原始 double 值。

GetValue = RefCell.Offset(0, i).Value2

返回值可能需要手动格式化为货币;所有区域信息均已被删除。

关于vba - .Value 仅返回货币格式的值的小数点后 4 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39177618/

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