Excel-VBA именованная сумма ряда
-
25-09-2019 - |
Вопрос
У меня есть следующий код
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