使用VBA在Excel中添加公式直到最后一行

时间:2015-11-16 10:03:06

标签: excel vba excel-vba

我遇到了SUM的问题。这个想法是我想用我自己的变量来估算某个范围。

这是我的代码

Range("B299").Activate
ActiveCell.FormulaR1C1 = "=SUM(R[-298]C:R[-1]C)"

我想使用lastrow变量来改变SUM的值

这是我的lastrow声明,我在另一个sub上创建了这个变量,在我想使用SUM之前我调用它

lastrow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row

当我试图运行宏时,它显示:

  

运行时错误' 1004':....

编辑: 我遇到了另一个问题。它是关于发现拉斯特罗功能的。

让我们说当我第一次尝试运行宏时,它将lastrow记录为300.但是当我第二次尝试运行它时,例如我有200行数据时,findlastrow函数仍然记录它是300而不是200。

这是我的findlastrow功能

Sub FindLastRow()

lastrow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row

MsgBox "Last Row this sheet is " & lastrow

lastrow变量,我在Module1中将其声明为全局变量

Public lastrow As Integer

我想知道代码有什么问题

1 个答案:

答案 0 :(得分:3)

看一下这篇文章:Error in finding last used cell in VBA

所以你应该使用它:

With ActiveSheet
    If Application.WorksheetFunction.CountA(.Cells) <> 0 Then
        lastrow = .Cells.Find(What:="*", _
                      After:=.Range("A1"), _
                      Lookat:=xlPart, _
                      LookIn:=xlFormulas, _
                      SearchOrder:=xlByRows, _
                      SearchDirection:=xlPrevious, _
                      MatchCase:=False).Row
    Else
        lastrow = 1
    End If
End With
Range("B" & lastrow +1).FormulaR1C1 = "=SUM(R[-" & lastrow & "]C:R[-1]C)"