2016-03-06 133 views
0

我想将我的数组设置为0小数位。我知道它必须是一些number.format=0。但我不知道该把它放在哪里。对于我的代码格式抱歉,它不是灰色的,因为我不知道要使用它。VBA中的数字格式

Option Explicit 
Option Base 1 

Function arraydemo(r As Range) 
    Dim cell As Range, i As Integer, x(40, 1) As Double 

    i = 1 

    For Each cell In r   
     x(i, 1) = Rnd * 40 
     i = i + 1 
    Next cell 

    arraydemo = x 
End Function 

回答

1

你的阵列是双重的,所以当你随机结果存储阵列,它会自动小数,你可以删除从十进制整数数组的改变声明中的小数,但这会删除十进制值随机结果。
我认为最好的方法是:修改函数结果的小数。 例如:

Sub test() 
Dim r As Range 
Dim A As Variant 

Set r = Range("A1:A40") 

A = arraydemo(r) 

For i = 1 To UBound(A) 
    Range("A1").Offset(i) = A(i, 1) 
    Range("A1").Offset(i).NumberFormat = "0" 
Next 

End Sub