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?

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top