我遇到了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
我想知道代码有什么问题
答案 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)"