excel VBA中,for循环 什么时候需要设置跳出,什么时候又不需要设置跳出循环啊?谢谢

例如:Sub视()DimxAsInteger,kAsIntegerForx=2To16IfRange("A"&x)-1<>Range("A"&x-1)Thenk=1Els... 例如:
Sub 视()
Dim x As Integer, k As Integer
For x = 2 To 16
If Range("A" & x) - 1 <> Range("A" & x - 1) Then
k = 1
Else
k = k + 1
End If
Range("B" & x) = k
Next x
End Sub
上面的这个就没设置跳出循环……
而下面这个代码必须设置跳出否则老循环
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim sh1
Dim rg As Range
Dim x As Integer
If Sh.Name = "Sheet1" And Target.Address = "$E$5" Then
Workbooks.Open ThisWorkbook.Path & "/价格表.xls"
Set sh1 = Workbooks("价格表.xls").Sheets("sheet1")
For x = 2 To 7

If Sh.Range("$E$5") = sh1.Range("a" & x) Then
Sh.Range("$E$7") = sh1.Range("B" & x)
Exit For
End If
Next x
If x = 8 Then

Sh.Range("$E$7") = "查找不到"
End If
End If
End Sub
那么请问,都什么情况下设置EXIT for 跳出循环,什么时候又不用设置跳出啊?谢谢
展开
 我来答
方括号
2012-03-03 · TA获得超过3.8万个赞
知道大有可为答主
回答量:1.7万
采纳率:55%
帮助的人:1.8亿
展开全部
一般来说,需要遍历的不需要跳出,比如从头到尾都需要计算,就不需要跳出。而如果是查找某个值,当找到后,就没有必要再循环下去了,所以要跳出。
具体还要根据实际情况来确定。
还是Rox
2012-03-03 · 工程师
还是Rox
工程师
采纳数:9 获赞数:31
发动机前端轮系CAE资深项目领导者

向TA提问 私信TA
展开全部
还是要看你自己的判断咯。达到某个要求时,你不需要后面的计算了。就可以结束循环了。如果你需要所有循环都运行完,然后录取过程中的数据,拿肯定就不能跳出循环咯!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-03-03
展开全部
这主要看你 你的 这个循环语句 是放在你的 程序的 什么部分……
如果不会产生 无限循环 而你确实需要让他循环设定的次数 就不需要跳出 ……
否则 它受到其他字句的控制 的话 你就必须设定它 当达到某个 条件时 必须结束……也就是跳出来 结束这一循环……
这不是这个循环语句 本身的问题 而是你整个 过程的需要与否……
就是要看整体 以及它所处的位置……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-03-03
展开全部
这个老是循环不是FOR语句的原因,是你的SUB执行条件问题.
第一个是手动启动,第二个的启动方式
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
是工作表变动就启动
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式