如何在vba中的sum函数中使用lastRow变量?在我计算每行中的单词数量直到最后一行之后,我想将每行中的各个总计加到一个总的总列中,但我不想将范围硬编码到vba中的sum函数中?还有另外一种方法吗?
示例:
Column: A B C D E F
NRow 1: 2 3 4 5 6 7
NRow 2: 3 4 5 6 7 8
Total 3: 5 7 9 11 13 15
想要避免SUM(R[-2]C:R[-1]C)
?我希望SUM(R[lastRow]C:R[-1]C)
或其他能以相同方式发挥作用的东西。
谢谢!
答案 0 :(得分:1)
像这样的东西
A1
设置为列F
中最后一个使用的单元格Cells(rng1.Cells(1).Row + rng1.Rows.Count, 1)
以下的第一个单元格,调整为感兴趣范围内的列数(本例中为6)"=SUM(R[-" & rng1.Rows.Count & "]C:R[-1]C)"
rng1.Rows.Count
动态第一行<强>码强>
Sub GetRange()
Dim rng1 As Range
Set rng1 = Range([a1], Cells(Rows.Count, "F").End(xlUp))
Cells(rng1.Cells(1).Row + rng1.Rows.Count, 1).Resize(1, rng1.Columns.Count).Value = "=SUM(R[-" & rng1.Rows.Count & "]C:R[-1]C)"
End Sub
答案 1 :(得分:0)
如果您可以保证column A
中始终有数据,那么要查找最后一行,您可以执行以下操作:
Option Explicit
Sub addSums()
Dim lstRow As Integer
With Excel.ThisWorkbook.Sheets("Sheet1")
lstRow = .Cells(.Rows.Count, 1).End(Excel.xlUp).Row
Dim j As Integer
For j = 1 To .Cells(1, .Columns.Count).End(Excel.xlToLeft).Column
.Cells(lstRow + 1, j) = "=SUM(R[-" & lstRow - 1 & "]C:R[-1]C)"
.Cells(lstRow + 1, j).Font.Bold = True
Next j
End With
End Sub
似乎可以正常使用以下内容:
答案 2 :(得分:-1)
如果源数据来自外部源,则适当的机制是: