【问题标题】:Use VBA to sum several cells above active cell使用 VBA 对活动单元格上方的几个单元格求和
【发布时间】:2015-03-27 00:15:19
【问题描述】:

我需要使用 VBA 设置一个单元格来汇总活动单元格上方的几个单元格。我玩过一些我遇到的代码,但它被设置为将整个列拉到活动单元格上方。我对代码的理解不足以修改它以将上面的第二行和第三行单元格相加。这是我到目前为止的内容(仅发布了宏的一部分):

Sub QRTLYdatagrab()

''''Script leading up to this point has been omitted''''

Range("U1").End(xlDown).Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "SUM('Asset_Dtl for CEQs for FAS 157'!J:J)"
Range("U1").End(xlDown).Offset(2, 0).Select

Dim r As Range, rAbove As Range
Dim wf As WorksheetFunction
Set wf = Application.WorksheetFunction
Set r = ActiveCell
Set rAbove = Range(r.Offset(-2, 0), Cells(2, r.Column))
r.Formula = "=SUM(" & rAbove.Address & ")"

''''Script after this point has been omitted''''

End Sub

一个简单的例子:我四分之一的数据可能使用 402 行。我在 403 中对第 1 - 402 行求和。404 正在从另一个选项卡中提取总和。我需要 406 来总结 403 和 404。如果我需要澄清任何事情,请告诉我,并提前感谢您的帮助。

【问题讨论】:

  • 用excel公式会更方便
  • @phil652 我当然对此持开放态度。如何将活动单元格中的第 2 行和第 3 行单元格相加?我希望在代码中完成此操作,这样做的目的是使此过程自动化,因此手动执行此操作会破坏该目的。我尝试使用“ActiveCell.FormulaR1C1”代码,但没有得到任何结果。感谢您的洞察力。
  • @pnuts 太棒了!再次感谢您的帮助,笨蛋。我遇到的唯一问题是我的行:ActiveCell.FormulaR1C1 = "=SUM('Asset_Dtl for CEQs for FAS 157'!J:J)" 宏运行后,单元格留下 "=SUM('Asset_Dtl for CEQs对于 FAS 157'!J:(J))",我必须手动删除第二个 J 周围的括号。您是否熟悉导致此问题的原因?
  • @pnuts 啊啊我明白了。我在没有 R1C1 部分的情况下尝试了它,它有点工作。它给了我#REF 错误,但是当我进入单元格并按 Enter 键时,它会提取正确的数据。我会继续玩这个部分。非常感谢您对此提供的帮助,非常感谢。保重!
  • @pnuts 嘿 pnuts,我很抱歉让这个继续下去,但我没有看到选择您的回复作为答案的选项?

标签: vba excel


【解决方案1】:

这个答案是由 pnuts 提供的(网站不会让我选择他的回答作为答案):

"一旦你选择了 406 单元格

Selection.FormulaR1C1 = "=SUM(R[-3]C:R[-2]C)" 

–昨天的疯子”

这是我将它应用到我自己的宏的方法:

Range("U1").End(xlDown).Offset(3, 0).Select
Selection.FormulaR1C1 = "=SUM(R[-4]C:R[-3]C)"

这允许宏转到 U 列的末尾(我已经建立了两个求和单元格),然后选择向下三行的单元格。然后,此单元格将对上面的第 4 行和第 3 行单元格求和。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 2014-10-14
    • 2015-02-07
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    相关资源
    最近更新 更多