5

次のコードがあります

 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]

4

3 に答える 3

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 に表示されます。

于 2010-11-17T03:03:09.333 に答える
2

並べ替え、助けてくれてありがとう

   DepRng.Cells(i, j) = Application.Sum(KidsRng.Rows(i)) //just needed to add the "s" in rows
于 2010-11-17T03:04:40.897 に答える
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

アプリケーションを使用するように更新された別のシート/ブックにkidsrngが存在する場合に機能するように更新しました。評価

于 2010-11-17T02:44:18.963 に答える