Vba 循环的条件内部影响循环变量增量
问题:Vba 循环的条件内部影响循环变量增量,vba,loops,conditional-statements,Vba,Loops,Conditional Statements,问题: 在计算数字序列中的数字时,如何检测何时到达定义为单独索引数组的里程碑,如下所示: Dim扇区作为变体 扇区=数组(0,3,9,14,26,29) 作为整数的Dim i,N N=30 对于i=扇区(0)到N 将m作为整数 m=1 对于m=1到扇区计数 MsgBox(“i,m=“+CStr(i)+”,“+CStr(m)) 如果i>sects(m),则 MsgBox(“i>sects(m)=“+CStr(i)+”、“+CStr(sects(m))+”、“+CStr(m)) 如果结束 下一个m
在计算数字序列中的数字时,如何检测何时到达定义为单独索引数组的里程碑,如下所示:
Dim扇区作为变体
扇区=数组(0,3,9,14,26,29)
作为整数的Dim i,N
N=30
对于i=扇区(0)到N
将m作为整数
m=1
对于m=1到扇区计数
MsgBox(“i,m=“+CStr(i)+”,“+CStr(m))
如果i>sects(m),则
MsgBox(“i>sects(m)=“+CStr(i)+”、“+CStr(sects(m))+”、“+CStr(m))
如果结束
下一个m
接下来我
期望值:对于每一个
i
,在第二个消息框之前会弹出几次第一个消息框。内部循环应该循环,直到
m
命中sects.Count
观察:对于上述代码,内部循环始终以
m
等于1结束。内部循环只运行一次,然后“中断”。请注意,未调用显式中断(退出) 解决方法:
删除If条件。
我试图手动向increment
m
添加一个Else
子句,但行为没有改变
问题:我想我对VBA的循环和条件如何工作有一个误解。
在查阅了教程之后,我想不出答案。不确定您想要做什么,但这似乎更像是您想要的:
Dim sects As Variant, i As Integer, N As Integer, m As Integer
sects = Array(0, 3, 9, 14, 26, 29)
N = 30
For i = 1 To N
For m = 0 To UBound(sects)
MsgBox "i, m = " & i & ", " & m
If i > sects(m) Then
MsgBox "i > sects(m) = " & i & ", " & sects(m) & ", " & m
End If
Next m
Next i
这段代码是如何运行的?我在行的
上得到一个424错误。VBA数组没有AFAIK的Count
属性。@SJR这很奇怪。我在macOSOK上的PowerPoint 2016中运行它可能有助于添加这些标签。@SJR我认为你是对的。问题是扇区计数
。我一定用过它,因为其他一些对象有一个Count属性。但运行代码时未引发编译器错误!>>代码运行时没有编译器问题。