Pergunta

eu tenho o seguinte código

 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

Embora eu saiba que está errado, não tenho ideia de como colocá -lo para armazenar DepRng.Cells(i, j) a soma total do todo KidsRng.Row[i] Qualquer ajuda?

Foi útil?

Solução 2

Classificado, obrigado a todos por sua ajuda

   DepRng.Cells(i, j) = Application.Sum(KidsRng.Rows(i)) //just needed to add the "s" in rows

Outras dicas

O código a seguir funciona bem.

Talvez você deva compará -lo com o seu:

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

Basta preencher o intervalo C1: F2 com números e os totais por linha aparecerão em B1: B2 após a execução da macro.

Pode haver uma maneira melhor do que isso, mas esta é a minha solução que depende do mecanismo interno do Excel Formula, porém, pode ser suficiente para o que você está fazendo ... determina o endereço completo do Kidsrng.row (i) e alimenta -o em a = sum () string de fórmula e avaliado pelo aplicativo.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

Atualizou -se para funcionar se o KidsRng existisse em uma folha/livro diferente atualizada para usar o aplicativo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top