Вопрос

У меня есть следующий код

 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

Хотя я знаю, что неправильно, я понятия не имею, как заставить его хранить в DepRng.Cells(i, j) общая сумма целого KidsRng.Row[i] Любая помощь?

Это было полезно?

Решение 2

Отсортировано, спасибо всем за вашу помощь

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

Другие советы

Следующий код работает нормально.

Возможно, вы должны сравнить его с вашим:

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

Просто заполните диапазон C1: F2 с числами, а итоги на строке появятся в B1: B2 при выполнении макроса.

Там может быть лучший способ, чем это, но это мое решение, которое зависит от внутреннего механизма формул Excel Excel, хотя, это может быть достаточно достаточно для того, что вы делаете ... он определяет полный адрес Kidsrng.ruw (i) и питает его в строку формулы A = SUM () и оценивается приложением. Оценка.

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

Обновил его на работу, если KidsRng существует в другом листе / книге, обновляемом для использования приложения. Evalatue

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top