使用Range.End

从下面的示例中可以看到以下代码片段

mr = Range("L" & i - 1).End(xlUp).Row Cells(i, 12).Formula = "=SUM(L" & (i - 1) & ":L" & mr & ")" 

大多数情况下都可以正常工作,除非有一条单独的线路可以总结出事情出错。

样本:第二个总数是177(48 + 129以上),而不是48,其余的都没问题。 在这里为了格式化而添加了这些行,该表只包含数字。

 ...
 02/07/2014 50 4
 -----------------------
 02/07/2014 129 = SUM(...)

 06/07/2014 50 48
 -----------------------
 02/07/2014 177 = SUM(...)

 09/07/2014 60 8
 09/07/2014 8 26
 09/07/2014 8 26
 09/07/2014 11
 09/07/2014 1800 1
 -----------------------
 09/07/2014 109 = SUM(...)

 16/07/2014 60 8
 16/07/2014 8 26
 16/07/2014 11 48
 16/07/2014 1800 1
 -----------------------
 16/07/2014 83 = SUM(...)

我知道这个问题可以通过编程方式绕过,例如使用循环。 问题是,我在做什么Range.End用法错误?

受到PatricK评论的启发,但修复了误报:

 If mr - i = 3 And IsEmpty(Range("L" & i - 2)) Then mr = i - 1