将4.54545454545455舍入为整数

时间:2015-05-21 23:24:10

标签: vba excel-vba excel

我有一个总和与"离开"相邻的值的总和。有价值的细胞。这些值就像4.54545454545455一样。 因为"离开"间歇性地使用条件并相应地在重新定义的整数数组中存储来自相邻单元格的值(Redim基于&#34的出现次数;离开"。

现在我在这里总结这个数组所在像sum这样的问题就像13.409091E-02那样,只有ULong(在我的VBA编辑器中不起作用)可以存储我研究和知道的这样的值。所以,像Long,Double这样的数据类型无法存储这样的价值。哪个是没有要求的金额。

是否有任何方法可以使用或者是否有任何其他方式可以检查间歇性的相邻值以及#34;离开"和总结他们。

Dim leavearray() As Long <br/>dim xsum as long<br/>dim counter3 as Integer<br/>dim colum as Integer<br/>dim ro as Integer<br/>dim ctr as Integer<br/>dim change as Integer

For counter3 = colum To ro<br/>
If Cells(counter3, 29) = "Leave" Then<br/>
ctr = ctr + 1<br/>
ReDim leavearray(ctr - 1)<br/>
Else<br/>
End If<br/>
Next counter3<br/><br/>For counter = colum To ro<br/>
If Cells(counter, 29) = "Leave" Then<br/>
change = change + 1<br/>
leavearray(change - 1) = Cells(counter, 30).Value 'stores value like 3.409091E-02 in array as and when "leave" occurs in its adjacent cell.<br/>
Else<br/>
End If<br/>
 If counter = ro Then<br/>
xsum = WorksheetFunction.Sum(leavearray)'It Stores 0 where the problem lies.

1 个答案:

答案 0 :(得分:2)

如果你有一个数字并且只想要它的整数部分,你应该使用命令Int(),如果你想要它被舍入,使用CInt(),如下面的代码所示:

Dim integerResult As Integer
Dim singleVariable As Single
singleVariable = 4.65

integerResult = Int(singleVariable)
MsgBox (integerResult)

integerResult = CInt(singleVariable)
MsgBox (integerResult)

第一个MessageBox将显示4,第二个MessageBox将显示5。