Débordement d'entier dans le projet VBA
tout le monde. Voici un petit VBA (Excel) fonction que j'ai écrit, plein de MsgBoxes pour le débogage.
Je suis de passage dans les numéros 10 et 1 comme arguments, et d'obtenir une erreur de dépassement de capacité lorsque le programme atteint le sommet de la boucle, avant qu'il commence à la première itération.
Toutes les pensées sont appréciés.
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Function PerformanceTest(iterations As Integer, interval As Integer) As Double
Dim st, tot, k As Double
Dim n As Integer
tot = 0#
MsgBox "ok"
k = iterations + tot
MsgBox "ookk"
n = 1
MsgBox "assigned"
For n = 1 To iterations
MsgBox n
st = Timer
Application.Calculate
tot = tot + (Timer - st)
Sleep (1000 * interval)
Next n
'MsgBox (tot /k)
PerformancTest = tot / k
End Function
- Comme d'autres, je ne peux pas faire de "dépassement" de se présenter. Je suis d'accord avec Tomalak qui pourrait poser un problème à l'extérieur de la fonction. Mais si votre code stands au point de vous dire, puis Tomalak idée est difficile à accepter.
Vous devez vous connecter pour publier un commentaire.
Redondance supprimés, essentiellement inchangé fonction s'exécute sans erreur dans mon Excel 2003
Donc... l'erreur que vous voyez n'est probablement pas au sein de la fonction elle-même.
P. S.: conseil du Pro: 😉 Utilisation
Debug.Print
au lieu deMsgBox
pour la sortie de débogage.st
.Au risque de ressembler à un imbécile encore une fois, voici une entrée.
Je voudrais construire ma fonction de minuterie de ce genre. Il semble plus simple pour moi. (Sans compter que j'ai supprimé quelques lignes inutiles -- je veux dire qu'il est structurellement simple.)
Et si elle s'est déroulée sans débordement, eh bien ce serait un plus agréable.