我是 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)"
Run Code Online (Sandbox Code Playgroud)
我想把它改成循环,这样 A1:A7 的值就会出现在我的 ActiveCell A8 上
要将值放置在活动单元格中,请使用循环尝试:
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
Run Code Online (Sandbox Code Playgroud)
要在没有循环的情况下在 activecell 中放置一个值,请尝试:
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
Run Code Online (Sandbox Code Playgroud)
要在没有循环的情况下在活动单元格中放置公式,请尝试:
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
Run Code Online (Sandbox Code Playgroud)