Vba 小数消失的奇怪案例

Vba 小数消失的奇怪案例,vba,excel,Vba,Excel,我有一个问题,当我将小数点放入数组中,然后再将它们粘贴出来时,小数点会消失。根本不知道为什么会发生这种情况。有梭伦吗 下面是一个例子: 卓越: A B 1 Input $213,213,132,135,654.00 <--format: Accounting 2 =B1/1000000 $213,213,132.14 <--format: Accounting 3 output

我有一个问题,当我将小数点放入数组中,然后再将它们粘贴出来时,小数点会消失。根本不知道为什么会发生这种情况。有梭伦吗

下面是一个例子:

卓越:

     A               B 
1    Input           $213,213,132,135,654.00 <--format: Accounting
2    =B1/1000000     $213,213,132.14         <--format: Accounting
3    output          $213,213,132,135,700.00 <--format: Accounting

2132135654.00/1000000=2132132.135654

您提供了答案,当您提到它仅在格式化为会计时才这样做。会计学计算到小数点后四位,仅得出结果213123132.1357,相乘后得出不匹配的213123135700.00


至于解决方法,我建议在所有公式中使用四舍五入到小数点后4位,或者在另一个工作表中以数字形式进行计算,然后在主工作表中以会计的形式呈现结果。

Try
Dim ar()作为Double
而不是steadtry,相同的结果Xcel将一个没有小数点的数字除以,然后VBA将结果乘以相同的数,从而逆转原始操作,理论上使您回到开始的位置,这是一个没有小数点的数字。我没有得到的是,当我复制它时,
B3
结果是
2121313135654.00
not
2121313135700.00
我也一直在测试。显然,如果我将单元格格式化为货币或会计,就会出现舍入问题。如果是纯数字,那么十进制问题就消失了。明白了,现在写下答案。。。但不确定这是解决方案哈哈,我也意识到了这一点。为了解决这个问题,我刚刚添加到vb代码中。1) 使用.NumberFormat 2)将范围内的所有格式更改为“常规”,在我处理完其余代码后,将格式更改回“记帐”
Sub test()
Dim ar() As Variant

ReDim ar(1)
ar(1) = Cells(2, 2).Value

ar(1) = ar(1) * 1000000

Cells(3, 2) = ar(1)

End Sub