有一个安全机制可以防止因无限循环问题而出现报表处理停顿的情况。在任何一个公式中,每个公式求值最多有 100,000 次循环条件求值。例如:
Dim i i = 1 Do While i <= 200000 If i > {movie.STARS} Then Exit Do i = i + 1 Loop formula = 20
如果 {电影.明星} 大于 100,000,则循环条件 (i <= 200000) 的求值多于最大次数,从而显示错误信息。否则循环没有问题。
注意 安全机制是针对每个公式的,它并非应用每个循环。例如:
Dim i i = 1 For i = 1 To 40000 formula = Sin (i) Next i Do While i <= 70000 i = i + 1 Loop
上述公式也会触发安全机制,因为 100,000 是指公式中的循环条件求值总数,而该公式将有 40001 + 70001 次这样的求值。
For/Next 循环 | Do 循环 | While 循环