学习VBA,报表做到飞第一章入门篇1。15EXIT语句
第一章 入门篇
1.15 EXIT语句
1、功能
Exit语句是结束语句,它的功能是让代码提前结束。
2、编写格式
Exit Do
写在Do循环里面,结束Do循环
Exit for
写在for循环里面,结束for循环
Exit Sub
写在sub子过程里,结束子过程
3、注意事项
需要注意的是,Exit语句只是给程序提供了一个提前结束的出口,但它并不定义Sub过程的末尾,所以Exit语句不能代替Sub过程最后的结束语句End语句。同样,在Sub过程中间,也不能用End语句代替Exit语句,否则系统会误认为程序到此已全部结束。
4、小程序
对下表数据从最下面一行开始循环,找出三行资产名称是"空调"的记录,把这三行拷贝到"K"列去,拷贝三条后程序自动终止。
卡片号
资产名称
建卡日期
原值
净值
00007933
空调
2007-12-31
498720.00
14961.60
00007934
台式电脑
2007-12-31
35670.00
1070.10
00012189
音响设备
2007-12-31
12420.00
372.60
00014439
空调
2008-06-11
6800.00
204.00
00014439
音响设备
2008-06-11
6800.00
204.00
00014439
空调
2008-06-11
6800.00
204.00
00072375
监控设备
2013-12-28
16986.00
509.58
00072448
空调
2013-12-28
6405.00
192.15
Sub exit应用()
Dim n%, i%, m%
n = Cells(Rows.Count, 1).End(xlUp).Row
For i = n To 2 Step -1
If Cells(i, 2) = "空调" Then
m = m + 1
Cells(i, 2).offset(0, -1).resize(1, 5).Copy Cells(Rows.Count, "k").End(xlUp).offset(1, 0)
End If
If m = 3 Then
Exit For
End If
Next
End Sub
在这个程序里,我们首先统计出数据区域一共有多少行,然后从最后一行的第2列开始往上循环,步长设置为"-1"。找到符合条件的单元格,就会运用到我们上节学到的offset方法与Resize属性的结合应用,向左偏移一列,然后重新定义1行5列,也就是选择一整行,对这整行数据执行拷贝操作。K列我们从表格的最下边界,也就是表格能容许的最大行号,再用xlUp 向上找到数据区域的最下面一行,再向下偏移一行,这样每次拷贝时都会依次逐行往下拷贝内容了。找到三行符合条件的记录后,就用Exit For语句结束For循环不再查找,也可以用Exit Sub语句直接结束过程。
另外有一点需要注意的是,如果Exit For用在For循环嵌套语句的内循环里,它跳出的是For内层循环,还会继续执行For外层循环。
往期精彩回顾:
学习VBA,报表做到飞 第一章 入门篇 1.14 RESIZE属性
学习VBA,报表做到飞 第一章 入门篇 1.13 OFFSET语句
学习VBA,报表做到飞 第一章 入门篇 1.12 FOR EACH语句
我是云飞扬,职场财会人员,愿与大家分享表格制作和数据统计分析的技巧与方法,希望大家的工作更便捷,更轻松!