提前退出For …下一个循环(Microsoft Excel)
如果在宏编程中使用For … Next循环(不这样做),那么您应该知道它们会花费大量时间。您可以通过仅检查所需内容来最小化此问题。例如,考虑以下代码,该代码检查数组以查看值是否存在。如果不是,则将值添加到数组的末尾。如果是这样,则不添加该值。
AddIt = False For J = 1 to NumEntries If NumValues(J) = ToAdd Then AddIt = True Next J If AddIt Then NumEntries = NumEntries + 1 NumValues(NumEntries) = ToAdd End If
这很好用,但是如果数组变大,您最终可能要经过多次For … Next循环。现在考虑以下代码,该代码完成相同的任务,但如果检测到匹配项,则尽早从For … Next循环中转储出去。
AddIt = False For J = 1 to NumEntries If NumValues(J) = ToAdd Then AddIt = True Exit For End If Next J If AddIt Then NumEntries = NumEntries + 1 NumValues(NumEntries) = ToAdd End If
现在,如果在循环的早期找到匹配项,则将跳过所有其余的迭代,因为遇到了Exit For语句,并且循环基本上立即退出了。结果是运行速度更快的宏。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(11335)适用于Microsoft Excel 2007、2010、2013和2016。您可以在此处为Excel的较旧菜单界面找到此技巧的版本:
链接:/ excel-Exiting_a_For_Next_Loop_Early [退出For …下一个循环尽早]。