我有一个程序在遇到连续非空单元格时执行某项任务。下面的代码我用来检查每个非空单元格,但问题是在遇到最后一个非空单元格后出现的。最后一个值需要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,这是最后一个非空单元格。
希望这有帮助。
答案 0 :(得分:0)
如果你的“If ... End If”在“For ... Next”循环中,那么你可以退出“退出”。
示例:
class A {
int a = 5;
}
如果您的“If ... End If”位于“Do While ...”循环中,则可以使用“Exit Do”退出。
但是如果你想退出整个Sub,请使用“Exit Sub”。