2016-03-06 134 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