vba for多重循环举例及如何退出某个嵌套循环 VBA 怎么跳出for 循环?

vba for\u591a\u91cd\u5faa\u73af\u4e3e\u4f8b\u53ca\u5982\u4f55\u9000\u51fa\u67d0\u4e2a\u5d4c\u5957\u5faa\u73af

\u5728VBA\u5f53\u4e2d\uff0c\u540c\u6837\u548c\u7f16\u7a0b\u8bed\u8a00\u4e00\u6837\uff0c\u6709\u7740for\u5faa\u73af\u8bed\u53e5\u3002\u5176\u8bed\u6cd5\u4e3a\u5982\u4e0b\uff1a For To [step \u6b65\u957f][\u6307\u4ee4][Exit For][\u6307\u4ee4]Next [\u8ba1\u6570\u5668] \u4ece\u5f00\u59cb\u5230\u7ed3\u675f\uff0c\u53cd\u590d\u6267\u884cFor\u548cNext\u4e4b\u95f4\u7684\u6307\u4ee4\u5757\uff0c\u9664\u975e\u9047\u5230Exit For\u8bed\u53e5\uff0c\u5c06\u63d0\u524d\u8df3\u51fa\u5faa\u73af\u3002\u5176\u4e2d\uff0c\u6b65\u957f\u548cExit For\u8bed\u53e5\u4ee5\u53caNext\u540e\u7684\u8ba1\u6570\u5668\u5747\u4e3a\u53ef\u9009\u9879\u3002 \u4e00\u822c\u60c5\u51b5\u4e0b\uff0c\u6211\u4eec\u53ea\u4f7f\u7528\u5230\u4e00\u4e2aFor\u8bed\u53e5\uff0c\u5982\u679c\u4f60\u4f7f\u7528\u591a\u4e2aFor\u8bed\u53e5\uff0c\u90a3\u4e48\u5c31\u662fFor\u8bed\u53e5\u7684\u5d4c\u5957\u6216\u591a\u91cd\u4f7f\u7528\u4e86\u3002 \u7b80\u5355\u7684For\u8bed\u53e5\u4e3e\u4f8b\u5982\u4e0b\uff1a For k = 1 To 6
MsgBox ("\u73b0\u5728\u7684N\u503c\u4e3a\uff1a" & k)
For n = 1 To 6
For n = 1 To 6 '\u7b2c\u4e8c\u4e2a\u5faa\u73af
For k = 1 To 6 '\u7b2c\u4e09\u4e2a\u5faa\u73af
If (k = 3) ThenExit ForEnd IfNext kNext nNext mMsgBox ("\u5927\u4f17\u8ba1\u7b97\u673a\u63d0\u793a\u60a8\uff1a\u73b0\u5728\u7684m\u503c\u4e3a\uff1a" & m & "\u73b0\u5728\u7684n\u503c\u4e3a\uff1a" & n & "\u73b0\u5728\u7684k\u503c\u4e3a\uff1a" & k) \u6b64\u65f6\u7684m\u4e3a7\u3001n\u4e3a7\uff0c\u800ck\u5219\u4e3a3\uff0c\u8bf4\u660e\uff0c\u7b2c\u4e00\u7b2c\u4e8c\u4e2a\u5faa\u73af\u5b8c\u5168\u8fd0\u884c\uff0c\u800c\u7b2c\u4e09\u4e2a\u5faa\u73af\u6bcf\u6b21\u90fd\u53ea\u8fd0\u884c\u5230k\u7b49\u4e8e3\u5c31\u9000\u51fa\u7b2c\u4e09\u4e2a\u5faa\u73af\u4e86\uff0c\u7b2c\u4e09\u4e2a\u5faa\u73af\u6ca1\u6709\u5b8c\u5168\u8fd0\u884c\u3002 \u4e8c\u3001\u9000\u51fa\u7b2c\u4e8c\u4e2a\u5faa\u73af Dim mDim nDim km = 1n = 1k = 1For m = 1 To 6 '\u7b2c\u4e00\u4e2a\u5faa\u73af
For n = 1 To 6 '\u7b2c\u4e8c\u4e2a\u5faa\u73af
If (n = 3) ThenExit ForFor k = 1 To 6 '\u7b2c\u4e09\u4e2a\u5faa\u73afNext kEnd IfNext nNext mMsgBox ("\u5927\u4f17\u8ba1\u7b97\u673a\u63d0\u793a\u60a8\uff0c\u73b0\u5728\u7684m\u503c\u4e3a\uff1a" & m & "\u73b0\u5728\u7684n\u503c\u4e3a\uff1a" & n & "\u73b0\u5728\u7684k\u503c\u4e3a\uff1a" & k) \u8fd9\u4e2a\u65f6\u5019\uff0cm\u7684\u503c\u4e3a7\uff0cn\u7684\u503c\u4e3a3\uff0c\u800ck\u7684\u503c\u4e3a1\uff0c\u5728\u8fd9\u4e2a\u5faa\u73af\u8fc7\u7a0b\u4e2d\uff0c\u7b2c\u4e00\u4e2a\u5faa\u73af\u5b8c\u5168\u6267\u884c\uff0c\u7b2c\u4e8c\u4e2a\u5faa\u73af\u53ea\u6267\u884c\u5230n\uff1d3\u5c31\u4e0d\u518d\u8fd0\u884c\uff0c\u800c\u7b2c\u4e09\u4e2a\u5faa\u73af\u4e00\u76f4\u90fd\u4e0d\u6267\u884c\u3002 \u4e09\u3001\u9000\u51fa\u7b2c\u4e00\u4e2a\u5faa\u73af Dim mDim nDim km = 1n = 1k = 1For m = 1 To 6 '\u7b2c\u4e00\u4e2a\u5faa\u73af
If (m = 3) ThenExit ForFor n = 1 To 6 '\u7b2c\u4e8c\u4e2a\u5faa\u73af
For k = 1 To 6 '\u7b2c\u4e09\u4e2a\u5faa\u73afNext kNext nEnd IfNext mMsgBox ("\u5927\u4f17\u8ba1\u7b97\u673a\u63d0\u793a\u60a8\uff0c\u73b0\u5728\u7684m\u503c\u4e3a\uff1a" & m & "\u73b0\u5728\u7684n\u503c\u4e3a\uff1a" & n & "\u73b0\u5728\u7684k\u503c\u4e3a\uff1a" & k) \u8fd9\u4e2a\u65f6\u5019\uff0cm\u7684\u503c\u4e3a3\uff0cn\u7684\u503c\u4e3a1\uff0c\u800ck\u7684\u503c\u4e3a1\uff0c\u5728\u8fd9\u4e2a\u5faa\u73af\u8fc7\u7a0b\u4e2d\uff0c\u7b2c\u4e00\u4e2a\u5faa\u73af\u53ea\u6267\u884c\u5230m\uff1d3\u5c31\u4e0d\u518d\u6267\u884c\u4e86\uff0c\u800c\u7b2c\u4e8c\u7b2c\u4e09\u4e2a\u5faa\u73af\uff0c\u4e00\u76f4\u90fd\u6ca1\u6709\u6267\u884c\u3002 \u7efc\u4e0a\u6240\u8ff0\uff0c\u4e0a\u9762\u7684\u4f8b\u5b50\u5206\u522b\u7ed9\u5927\u5bb6\u5217\u4e3e\u4e86\u4e09\u91cdfor\u5faa\u73af\uff0c\u5982\u4f55\u9000\u51fa\u5176\u4e2d\u7684\u67d0\u4e2a\u5faa\u73af\uff0c\u5728\u6b64\u8fc7\u7a0b\u4e2d\uff0c\u4ec5\u4f7f\u7528\u7b80\u5355\u7684Exit For\u8bed\u53e5\u5c31\u53ef\u4ee5\u5b9e\u73b0\u4e86\uff0c\u4f46\u662f\uff0c\u96be\u70b9\u5728\u4e8e\uff0cExit For\u6240\u653e\u7684\u4f4d\u7f6e\uff0c\u8981\u914d\u5408if\u8bed\u53e5\u6765\u4f7f\u7528\uff0c\u8fd9\u6837\u624d\u8d77\u5230\u6548\u679c\uff0c\u5426\u5219\u4f1a\u5bfc\u81f4\u5faa\u73af\u5d4c\u5957\u7684\u6df7\u4e71\u3002

\u7528\u8bed\u53e5exit for\u6765\u8df3\u51fafor\u5faa\u73af\uff0c\u8fd9\u91cc\u8df3\u51fa\u5faa\u73af\u6307\u7684\u662f\u8df3\u51fa\u6700\u91cc\u9762\u4e00\u5c42\u7684\u5faa\u73af\u7ed3\u6784\u3002
\u4ee3\u7801\u5b9e\u4f8b\u5982\u4e0b\uff1a
for ii = 1 to 1000
if ii = 500 then
exit for
end if
next
\u8fd9\u91cc\u7684\u4ee3\u7801\u8868\u793aii\u4ece1\u52301000\u8fdb\u884c\u5faa\u73af\uff0c\u5982\u679cii\u4e3a500\u65f6\u5219\u8df3\u51fa\u5faa\u73af\u3002

\u6269\u5c55\u8d44\u6599\uff1a
\u901a\u8fc7\u4e00\u6bb5VBA\u4ee3\u7801\uff0c\u53ef\u4ee5\u5b9e\u73b0\u753b\u9762\u7684\u5207\u6362\uff1b\u53ef\u4ee5\u5b9e\u73b0\u590d\u6742\u903b\u8f91\u7684\u7edf\u8ba1\uff08\u6bd4\u5982\u4ece\u591a\u4e2a\u8868\u4e2d\uff0c\u81ea\u52a8\u751f\u6210\u6309\u5408\u540c\u53f7\u6765\u8ddf\u8e2a\u751f\u4ea7\u91cf\u3001\u5165\u5e93\u91cf\u3001\u9500\u552e\u91cf\u3001\u5e93\u5b58\u91cf\u7684\u7edf\u8ba1\u6e05\u5355\uff09\u7b49\u3002
\u638c\u63e1\u4e86VBA\uff0c\u53ef\u4ee5\u53d1\u6325\u4ee5\u4e0b\u4f5c\u7528\uff1a
1.\u89c4\u8303\u7528\u6237\u7684\u64cd\u4f5c\uff0c\u63a7\u5236\u7528\u6237\u7684\u64cd\u4f5c\u884c\u4e3a\u3002
2.\u64cd\u4f5c\u754c\u9762\u4eba\u6027\u5316\uff0c\u65b9\u4fbf\u7528\u6237\u7684\u64cd\u4f5c\u3002
3.\u591a\u4e2a\u6b65\u9aa4\u7684\u624b\u5de5\u64cd\u4f5c\u901a\u8fc7\u6267\u884cVBA\u4ee3\u7801\u53ef\u4ee5\u8fc5\u901f\u7684\u5b9e\u73b0\u3002
4.\u5b9e\u73b0\u4e00\u4e9bVB\u65e0\u6cd5\u5b9e\u73b0\u7684\u529f\u80fd\u3002
5.\u7528VBA\u5236\u505aEXCEL\u767b\u5f55\u7cfb\u7edf\u3002
6.\u5229\u7528VBA\u53ef\u4ee5Excel\u5185\u8f7b\u677e\u5f00\u53d1\u51fa\u529f\u80fd\u5f3a\u5927\u7684\u81ea\u52a8\u5316\u7a0b\u5e8f\u3002
\u53c2\u8003\u8d44\u6599\uff1a\u767e\u5ea6\u767e\u79d1-VBA

在VBA当中,同样和编程语言一样,有着for循环语句。其语法为如下: For <计数器=开始数> To <结束数> [step 步长][指令][Exit For][指令]Next [计数器] 从开始到结束,反复执行For和Next之间的指令块,除非遇到Exit For语句,将提前跳出循环。其中,步长和Exit For语句以及Next后的计数器均为可选项。 一般情况下,我们只使用到一个For语句,如果你使用多个For语句,那么就是For语句的嵌套或多重使用了。 简单的For语句举例如下: For k = 1 To 6 MsgBox ("现在的N值为:" & k) For n = 1 To 6 For n = 1 To 6 '第二个循环 For k = 1 To 6 '第三个循环 If (k = 3) ThenExit ForEnd IfNext kNext nNext mMsgBox ("大众计算机提示您:现在的m值为:" & m & "现在的n值为:" & n & "现在的k值为:" & k) 此时的m为7、n为7,而k则为3,说明,第一第二个循环完全运行,而第三个循环每次都只运行到k等于3就退出第三个循环了,第三个循环没有完全运行。 二、退出第二个循环 Dim mDim nDim km = 1n = 1k = 1For m = 1 To 6 '第一个循环 For n = 1 To 6 '第二个循环 If (n = 3) ThenExit ForFor k = 1 To 6 '第三个循环Next kEnd IfNext nNext mMsgBox ("大众计算机提示您,现在的m值为:" & m & "现在的n值为:" & n & "现在的k值为:" & k) 这个时候,m的值为7,n的值为3,而k的值为1,在这个循环过程中,第一个循环完全执行,第二个循环只执行到n=3就不再运行,而第三个循环一直都不执行。 三、退出第一个循环 Dim mDim nDim km = 1n = 1k = 1For m = 1 To 6 '第一个循环 If (m = 3) ThenExit ForFor n = 1 To 6 '第二个循环 For k = 1 To 6 '第三个循环Next kNext nEnd IfNext mMsgBox ("大众计算机提示您,现在的m值为:" & m & "现在的n值为:" & n & "现在的k值为:" & k) 这个时候,m的值为3,n的值为1,而k的值为1,在这个循环过程中,第一个循环只执行到m=3就不再执行了,而第二第三个循环,一直都没有执行。 综上所述,上面的例子分别给大家列举了三重for循环,如何退出其中的某个循环,在此过程中,仅使用简单的Exit For语句就可以实现了,但是,难点在于,Exit For所放的位置,要配合if语句来使用,这样才起到效果,否则会导致循环嵌套的混乱。

扩展阅读:vba编程必背50个程序 ... vba中有三个for循环怎么看 ... vba for循环嵌套 ... vb for 循环声明变量 ... vba跳出for当前循环 ... excel vba 跳出for循环 ... vba do while循环语句举例 ... vb for循环语句格式 ... vba循环嵌套跳出本次循环 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网