Excel-VBA命名范围行总和

时间:2010-11-17 02:34:59

标签: vba excel-vba sum named-ranges excel

我有以下代码

 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]任何帮助的总和中?

3 个答案:

答案 0 :(得分:3)

以下代码可以正常工作。

也许你应该把它与你的比较:

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中。

答案 1 :(得分:2)

排序,感谢所有人的帮助

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

答案 2 :(得分:1)

可能有一种比这更好的方法,但这是我的解决方案,它取决于内部的Excel公式引擎,但它可能已经足够你正在做的...它确定了KidsRng.Row的完整地址(i),并将其提供给= SUM()公式字符串,并由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

如果孩子存在于不同的工作表/书中,则将其更新为有效 已更新以使用Application.Evaluate