J'ai une liste de nombres. Je veux utiliser le premier nombre de la liste comme valeur de départ et en soustraire les nombres suivants, à l'aide de VBA.
J'ai fait plusieurs tentatives infructueuses:
Function less(rng As Range)
X = 0
For Each cell In rng
X = X - cell.Value
Next
less = X
End Function
Il en résulte la soustraction de toutes les valeurs, y compris la première. Par exemple, pour la séquence 5,7,3,6, mon code donnera -21. Mais j'attends -11.
L'autre code que j'ai essayé est:
Function less(rng As Range)
X = 0
For Each cell In rng
X = X + cell.Value
X = X - cell.Value
Next
less = X
End Function
Il remplace simplement chaque valeur et le résultat est 0.
Comment puis-je transformer la première valeur de la liste en valeur de départ, puis en soustraire les valeurs suivantes?
Je ne m'inquiète pas ici du signe de l'une des valeurs, mais seulement de la séquence logique qui commence par la première valeur et en soustrait les valeurs suivantes.
Remarque: je suis nouveau sur VBA et ceci est mon premier codage.
la source
Réponses:
Edit (après les commentaires de fix1234)
Vous pouvez interpréter votre question comme suit: "Ignorez la première valeur de la soustraction mais incluez-la comme valeur de départ" à l'aide de la fonction suivante:
Ce sera également conforme à votre commentaire où vous avez dit qu'un intervalle 5, 7, 3, 6 devrait donner -11
la source