当值到达行尾时需要退出宏

时间:2017-02-17 10:42:05

标签: excel-vba vba excel

我有一个程序在遇到连续非空单元格时执行某项任务。下面的代码我用来检查每个非空单元格,但问题是在遇到最后一个非空单元格后出现的。最后一个值需要A1048576然后我的excel挂起。

Reg_SCN_001

Reg_SCN_002

Reg_SCN_003

If VBA.IsEmpty(startCell.Value) Then
      'MsgBox "No data in this column"
Else
       Set firstNonEmptyCell = startCell.End(xlDown)
      'MsgBox "First non empty cell is " & firstNonEmptyCell.Address
       county = firstNonEmptyCell.Offset(0, 0).Address(False, False)
       county = Right(county, Len(county) - 1)
       countsteps1 = county - 1
End If

上面的代码给出了我在程序中使用的每个非空单元格的单元格地址。例如Reg001 @ $ A $ 2,Reg001 @ $ A $ 16,Reg002 @ $ A $ 33等等。 那么在它到达最后一个非空单元格后会发生什么呢?Reg015 @ $ A $ 233。 上面的代码运行更多的时间,并给我行单元格值的结束,即$ A $ 1048576,我想停在Reg015 @ $ A $ 233,这是最后一个非空单元格。

希望这有帮助。

1 个答案:

答案 0 :(得分:0)

如果你的“If ... End If”在“For ... Next”循环中,那么你可以退出“退出”。

示例:

class A {
  int a = 5;
}

如果您的“If ... End If”位于“Do While ...”循环中,则可以使用“Exit Do”退出。

但是如果你想退出整个Sub,请使用“Exit Sub”。