Plage nommée Excel VBA somme des lignes
-
25-09-2019 - |
Question
Je le code suivant
For i = 1 To DepRng.Rows.Count
For j = 1 To DepRng.Columns.Count
DepRng.Cells(i, j) = Application.Sum(KidsRng.Row(i)) //Does not work
Next j
Next i
Bien que je sais est faux, je ne sais pas comment l'obtenir à stocker dans DepRng.Cells(i, j)
la somme totale de l'ensemble KidsRng.Row[i]
Toute aide?
La solution 2
Triés, merci à tous pour votre aide
DepRng.Cells(i, j) = Application.Sum(KidsRng.Rows(i)) //just needed to add the "s" in rows
Autres conseils
Le code suivant fonctionne bien.
Peut-être que vous devriez le comparer avec le vôtre:
Sub a()
Dim DepRng As Range
Dim kidsrng As Range
Set DepRng = Range("B1:B2")
Set kidsrng = Range("C1:F2")
For i = 1 To DepRng.Rows.Count
DepRng.Cells(i, 1) = Application.Sum(kidsrng.Rows(i))
Next i
End Sub
Il suffit de remplir la gamme C1: F2 avec les chiffres et les totaux par ligne apparaissant dans B1. B2 lors de l'exécution de la macro
Il peut y avoir une meilleure façon que cela, mais c'est ma solution qui dépend du moteur de formule Excel interne cependant, il pourrait être suffisant pour ce que vous faites ... Elle détermine l'adresse complète de KidsRng.Row (i), et il alimente un = SUM () chaîne de formule et évaluée par Application.Evaluate.
For i = 1 To DepRng.Rows.Count
For j = 1 To DepRng.Columns.Count
DepRng.Cells(i, j).Value = Application.Evaluate("=SUM(" & KidsRng.Row(i).Address(True, True, xlA1, True) & ")")
Next j
Next i
mise à jour pour fonctionner si kidsrng existait dans une autre feuille / livre mises à jour en Application.Evaluate