如何对lastrow + 1和lastrow + 2求和

时间:2019-11-20 15:33:09

标签: excel vba

我在VBA中有一个宏,我希望单元格B199(代码中的lastrow-2)向我返回单元格B200(代码中的lastrow-1)和单元格B201(代码中的lastrow)的总和。不幸的是,它不起作用,因为通过运行宏,该公式在单元格B199中返回了一个错误:#NAME?

显然,问题出在我的代码中,来自代码的这一部分:"=SUM(lastrow-1&lastrow )"

请在下面找到我的代码,如果有人可以帮助我,那就太好了。谢谢哈维

enter image description here

Sub fgdjkgfjbbg2222()
Dim lastrow As Long
lastrow = Worksheets("youpi").Range("B" & Rows.Count).End(xlUp).Row
Worksheets("youpi").Activate
Range("B" & lastrow - 2).Value = "=SUM(lastrow-1&lastrow )"
End Sub

2 个答案:

答案 0 :(得分:1)

据我所知,您正在尝试根据B列中的LastRow获得的值对B列中的值求和。

在VBA中的公式中,您需要使用变量,如下所示:

Range("B" & lastrow - 2).Value = "=SUM(B" & lastrow - 1 & ":B" & lastrow & ")"

答案 1 :(得分:1)

这不起作用,因为您试图将VBA变量用作单元格公式中的变量。这是不可能的,因为vba变量一旦超出范围(宏完成运行)就没有值

相反,请尝试

Range("B" & lastrow - 2).FormulaR1C1 = "=SUM(R[1]C:R[2]C)"

这将创建一个动态公式,该动态公式与在单元格中键入“ = SUM(B200:B201)”相同。