注册 登录
编程论坛 VB6论坛

如何真正退出VB6的FOR循环?请教前辈我的问题出在什么地方。

niyongjun 发布于 2015-04-10 10:45, 633 次点击
如果intX、intY、FX、jE四条件大于0成立,那么鼠标左键就单击,点击次数为:JE。
假设JE=9那么鼠标左键就要点击9次,点击完9次后退出点击事件,去做别的事情。
Dim a As Integer
If intX > 0 And intY > 0 And FX >1  And jE > 1  Then
a =JE
For i = 1 To a Step 1
a = a + 1
If i <= a Then
dm_ret = dm.LeftClick  '鼠标左键单击JE次(如果JE=9,就是点击9次。)
End If
Sleep 50
Exit For
Next i
dm.MoveTo 520, 653 '移动鼠标到位置:920, 653
End If

鼠标左键一直疯狂单击,根本没有停止,也没有走到位置:920, 653
请教前辈我的问题出在什么地方。尝试无数次修改,一直无法停止鼠标的点击。
可否把四个条件之一放入循环里,鼠标点击JE次数后,给四个条件之一赋值为0,让它退出循环。
鼠标疯狂单击,我也快疯狂了。谢谢解答!
3 回复
#2
wp2319572015-04-10 11:14
建议贴点完整代码
#3
lianyicq2015-04-10 12:17
假设实现鼠标点击和移动都无误

Dim a As Integer
If intX > 0 And intY > 0 And FX >1  And jE > 1  Then
a =JE
For i = 1 To a Step 1
a = a + 1'(不是就点a次,为什么要加1)
If i <= a Then(为什么还要判断i比a小点击?i在1~a中循环,一直比a小,a在循环过程中改变,不影响i还是1~原先的a)
dm_ret = dm.LeftClick  '鼠标左键单击JE次(如果JE=9,就是点击9次。)
End If
Sleep 50
Exit For(为什么要用exit for ?点击过程中有跳出JE的需要?)
Next i
dm.MoveTo 520, 653 '移动鼠标到位置:920, 653
End If

改了试试
Dim a As Integer
If intX > 0 And intY > 0 And FX >1  And jE > 1  Then
a =JE
dm.MoveTo 520, 653 '移动鼠标到位置:920, 653
For i = 1 To a Step 1
dm_ret = dm.LeftClick  '鼠标左键单击JE次(如果JE=9,就是点击9次。)
Sleep 50
Next i
End If

#4
xzlxzlxzl2015-04-12 08:06
i一直追着a,总到不了a。
但exit for了,这个for只运行一次的,难道点击事件就是这个代码?

[ 本帖最后由 xzlxzlxzl 于 2015-4-12 08:09 编辑 ]
1