1

私は VBA Noob で、助けを求めています。私の ActiveCell は現在セル A8 にあり、ループを使用してセル A7 から A1 への合計を取得したい場合、値はセル A8 に表示されます。また、ActiveCell を C8 に変更しても同じ手順になります。

レコードマクロは私にこれをくれました

Range("A1:A7,A8").Select
Range("A8").Activate
ActiveCell.FormulaR1C1 = "=SUM(R[-7]C:R[-1]C)"

A1:A7 の値が ActiveCell A8 に表示されるようにループに変更したい

4

1 に答える 1

5

をアクティブセルに配置するには、ループを使用して次を試してください。

Sub SumAboveLoop()
    Dim r As Range, rAbove As Range
    Dim v As Variant
    Set r = ActiveCell
    Set rAbove = Range(r.Offset(-1, 0), Cells(1, r.Column))
    v = 0
    For Each rr In rAbove
        v = v + rr.Value
    Next rr
    r.Value = v
End Sub

loop なしでアクティブセルにを配置するには、次を試してください。

Sub SumAboveV()
    Dim r As Range, rAbove As Range
    Dim wf As WorksheetFunction
    Set wf = Application.WorksheetFunction
    Set r = ActiveCell
    Set rAbove = Range(r.Offset(-1, 0), Cells(1, r.Column))
    r.Value = wf.Sum(rAbove)
End Sub

loop なしでアクティブセルにを配置するには、次を試してください。

Sub SumAboveF()
    Dim r As Range, rAbove As Range
    Dim wf As WorksheetFunction
    Set wf = Application.WorksheetFunction
    Set r = ActiveCell
    Set rAbove = Range(r.Offset(-1, 0), Cells(1, r.Column))
    r.Formula = "=SUM(" & rAbove.Address & ")"
End Sub
于 2013-09-14T12:00:15.537 に答える