Quel est l'équivalent JavaScript Math.Floor()
dans VBA?. cette fonction doit supprimer toutes les décimales et renvoyer uniquement un entier.
De ce dont je me souviens, utilisez la fonction Int (). ex
int(2.99) = 2 ; int(2.1)=2
etc.
faites attention à ce que CInt () arrondisse réellement le nombre, mais pas Int ().
CInt(1.6) ~~ 2
Int(1.6) ~~ 1
C'est Round()
Sub Sample()
Dim dval As Double
dval = 1.12345
Debug.Print Round(dval, 0)
End Sub
0
Ci-dessus spécifie le nombre de décimales souhaité.
MODIFIER:
Albi Patozi a raison. equivalent
de Math.Floor()
est int()
. J'avais l'impression que vous vouliez simplement retourner un nombre sans les décimales. Mais j'ai levé les yeux http://www.w3schools.com/jsref/jsref_floor.asp
La méthode floor () arrondit un nombre VERS LE BAS à l'entier le plus proche et renvoie le résultat.
'~~> JavaScript floor() Method
'var a=Math.floor(0.60); ~~> 0
'var b=Math.floor(0.40); ~~> 0
'var c=Math.floor(5); ~~> 5
'var d=Math.floor(5.1); ~~> 5
'var e=Math.floor(-5.1); ~~> -6
'var f=Math.floor(-5.9); ~~> -6
Sub Sample()
Dim dval(5) As Double, i As Long
dval(0) = 0.6: dval(1) = 0.4: dval(2) = 5
dval(3) = 5.1: dval(4) = -5.1: dval(5) = -5.9
For i = LBound(dval) To UBound(dval)
Debug.Print Round(dval(i), 0); " ~~ "; Int(dval(i))
Next
End Sub
[~ # ~] résultat [~ # ~]
ROUND () ~~ INT ()
1 ~~ 0
0 ~~ 0
5 ~~ 5
5 ~~ 5
-5 ~~ -6
-6 ~~ -6
Vous pouvez également appeler l'une des fonctions de feuille de calcul Excel à partir de VBA:
Application.WorksheetFunction.Floor_Math
Application.WorksheetFunction.Floor