helo请帮助这是代码
Option Explicit
Dim iim1, i, s , shell
dim iret
dim myname, mypath
dim pos
'initialize iMacros instance
set iim1= CreateObject ("iMacros")
'i = iim1.iimOpen ("-fx", false) 'Use open Firefox instance if available
i = iim1.iimOpen ("-fx", true) 'Always open new instance
pos = 2
Do while pos < 10
iret = iim1.iimSet("loopVar",Cstr(pos))
iret = iim1.iimPlay("ecc2.iim")
set shell=createobject("wscript.shell")
shell.Run "%comspec% /c C:\Users\SDFL\Desktop\dc1.bat"
pos = pos + 1
loop
行后
iret = iim1.iimPlay("ecc2.iim")
我希望它检查是否iret < 0
。如果是,那么我希望它重复这一步
iret = iim1.iimSet("loopVar",Cstr(pos))
iret = iim1.iimPlay("ecc2.iim")
在一个循环中,直到iret > 0
具有相同的Pos
值,而不会干扰主循环,如果iret > 0
我希望它将其移动到代码的下一行。
所以这是循环中的循环怎么做?请注意Pos
值,例如如果在Pos
时iret < 0
值为6,则使用pos = 6
重复该步骤,如果iret > 0
然后前进到下一行代码,那么在最后一步{{1}并且整个代码继续进行。
我希望你明白
请提供代码谢谢
的 ADDED 的
pos = 7
答案 0 :(得分:0)
循环数字范围的首选方法是For
,而不是While
:
>> For pos = 2 To 9
>> WScript.Echo "pos", pos
>> Next
>>
pos 2
pos 3
pos 4
pos 5
pos 6
pos 7
pos 8
pos 9
要至少重复一次操作,直到某个条件已满,请使用Do ... Loop Until
:
>> For pos = 2 To 9
>> Do
>> ret = Rnd() > .5
>> WScript.Echo pos, CStr(ret)
>> Loop Until ret
>> Next
>>
2 True
3 True
4 True
5 False
5 False
5 True
6 False
6 True
7 True
8 True
9 False
9 False
9 True
Do
循环上应该有一个上限(计数器/计时器?)来避免无限循环。
<强>加了:强>
在我的示例中,如果函数ret
返回值&gt;,则控制布尔变量True
的循环设置为Rnd()
(=请停止循环)。 0.5。给定一个函数.iimSet()
返回一些表示成功或失败的数字,你肯定可以自己计算一个数字(..- 1,0,+ 1 ..)来比较如何(=,&lt;,&gt;, &lt; =,&gt; =)具有该返回值以在成功的情况下停止循环。提示:仔细检查你的测试“iret&lt; 0”与“iret&gt; 0”wrt .iimSet()
传递0。
答案 1 :(得分:0)
如果你想要一个内循环,只需添加一个内循环:
pos = 2
Do while pos < 10
Do
iret = iim1.iimSet("loopVar",Cstr(pos))
iret = iim1.iimPlay("ecc2.iim")
Loop Until iret > 0
set shell=createobject("wscript.shell")
shell.Run "%comspec% /c C:\Users\SDFL\Desktop\dc1.bat"
pos = pos + 1
loop
当然,由于你的外部循环只是迭代一系列数字,你最好使用For
循环。而且我会在循环外部移动WScript.Shell
对象的创建,因此您不会浪费系统资源(重新)一遍又一遍地创建对象。
set shell=createobject("wscript.shell")
For pos = 2 To 9
Do
iret = iim1.iimSet("loopVar",Cstr(pos))
iret = iim1.iimPlay("ecc2.iim")
Loop Until iret > 0
shell.Run "%comspec% /c C:\Users\SDFL\Desktop\dc1.bat"
Next