【问题标题】:VBA sum variable range with some empty rows between variable range and sumVBA总和变量范围,变量范围和总和之间有一些空行
【发布时间】:2016-04-28 13:04:27
【问题描述】:

我做了一些研究,感觉这是一个相当简单的问题..

我想对变量范围求和:在我的工作表中,L25 可以运行到无穷大,棘手的部分(对我来说),它不应该求和直到最后一行-1 但最后一行 -3 因为有一个“总计” ' 总和所在位置上方的文本

所以总计应该在 L40 中求和,在不同的情况下可以是另一个 L 行。

我认为这并不难,但作为初学者,我认为我犯了一个基本错误。为了展示我的努力,我设法得到了这个:

Sub Sumvariablerow
  Range("L40").Select
  ActiveCell.FormulaR1C1 = "=SUM(R[-15]C:R[-3]C)"
End Sub

感觉应该是这样的:

Sub Sumvariablerow
  Range("L40").Select
  ActiveCell.FormulaR1C1 = "=SUM(L25:L" & R - 3 & ")"
End Sub

找到以下主题: How to sum values in variable range in VBA?

VBA Summing a Column of Variable Length

http://www.mrexcel.com/forum/excel-questions/584966-visual-basic-applications-sum-variable-length-column.html

http://www.mrexcel.com/forum/excel-questions/251264-sum-formula-variable-rowcount-using-visual-basic-applications.html

提前致谢

【问题讨论】:

  • 两种解决方案都对我有用!感谢您的帮助

标签: vba excel


【解决方案1】:

试试下面的代码

Sub test()
    Range("L" & Range("L25").End(xlDown).Row + 3).Formula = WorksheetFunction.Sum(Range("L25:L" & Range("L25").End(xlDown).Row))
End Sub

【讨论】:

  • 谢谢,这几乎可行,但有一个不同的问题:行总和是可变的,但它只计算(总和)最后一行.. 所以(按照图片)根据您的代码的总和是 365 欧元?
【解决方案2】:

也许是这样的:

Range("L40").Formula = "=SUM(L25:L" & 24 + Range(Range("L25"), Range("L25").End(xlDown)).Rows.Count & ")"

【讨论】:

  • 谢谢,带我去某个地方,唯一的问题是,"Range("L40").Formula =" 导致如果列表较长,SUM 将始终位于 "L40" 单元格中(比如说总数应该添加在 L50 上,它仍然在 L40 上加起来?有什么想法吗?
【解决方案3】:

试试这个:

Sub Sumvariablerow()
    Dim LastRow As Long
    LastRow = Range("L25").End(xlDown).Row
    Cells(LastRow + 2, 12).Value = "total"
    Cells(LastRow + 3, 12).Select
    ActiveCell.Formula = "=SUM(L25:" & ActiveCell.Offset(Rowoffset:=-3).Address & ")"
End Sub

【讨论】:

  • 谢谢,这里也一样,但如果填充 L 的单元格少于或多于它仍然将总和放在 L40 中?
  • @bart1701 - 它计算代码中的行数。糟糕,我已经编辑了我的代码。
猜你喜欢
  • 1970-01-01
  • 2013-12-21
  • 2014-01-31
  • 2015-08-31
  • 2017-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多