Excel VBA 中 for循环和for each 循环有什么区别? vba中五种循环语句的区别
\u201cwhile\u5faa\u73af\u201d\u548c\u201cfor\u5faa\u73af\u201d\u6709\u4ec0\u4e48\u533a\u522b\uff1f\u6700\u5927\u7684\u533a\u522b\u5e94\u8be5\u662f\u4e24\u4e2a\u8bed\u53e5\u7684\u8bed\u6cd5\u7ed3\u6784\u4e0a\u9762\u3002
//while\u53ea\u6709\u4e00\u4e2a\u8868\u8fbe\u5f0f\uff0c\u8868\u793a\u662f\u5426\u8fdb\u5165\u5faa\u73af\u4f53
//\u4f7f\u7528continue\u7684\u65f6\u5019\uff0c\u76f4\u63a5\u8fdb\u5165exp.
while(exp)
{
\u2026\u2026
}
//for\u8bed\u53e5\u4e2d\u67093\u4e2a\u8868\u8fbe\u5f0f exp1\uff0cexp2\uff0cexp3 \u3002
//exp1 \u5728\u8fdb\u5165\u5faa\u73af\u524d\u6267\u884c\u4e00\u6b21\uff0c\u4e00\u822c\u8fdb\u884c\u5faa\u73af\u53d8\u91cf\u7684\u521d\u59cb\u5316\uff0c
//exp2 \u662f\u7528\u6765\u5224\u65ad\u662f\u5426\u8fdb\u5165\u5faa\u73af\u4f53\uff0c\u548cwhile\u4e2d\u7684exp\u8d77\u5230\u540c\u6837\u7684\u4f5c\u7528\u3002
//exp3 \u662f\u7528\u6765\u4fee\u6539\u6211\u4eec\u7684\u5faa\u73af\u53d8\u91cf\uff0c\u4e00\u822c\u662f\u5728\u6bcf\u6b21\u6267\u884c\u5b8c\u5faa\u73af\u4f53\u540e\u6267\u884c\u3002\u4f7f\u7528continue\u540e\uff0c\u4e5f\u662f\u8fdb\u5165\u7684exp3
for(exp1;exp2;exp3);
{
\u2026\u2026
}
\u603b\u7684\u6765\u8bf4\uff0c\u53ef\u4ee5\u7528while\u5b9e\u73b0\u7684\u90fd\u53ef\u4ee5\u7528for\u6765\u5b9e\u73b0\uff0c
\u53ef\u4ee5\u7528for\u6765\u5b9e\u73b0\u7684\u4e5f\u90fd\u53ef\u4ee5\u7528while\u5b9e\u73b0\u3002
\u53ef\u4ee5\u4f7f\u7528do\u2026\u2026while\u5b9e\u73b0\u53ef\u4ee5\u4e5f\u53ef\u4ee5\u4f7f\u7528 while\u548cfor\u6765\u5b9e\u73b0\uff08\u4e0d\u8fc7\u6709\u65f6\u5019\u4f1a\u6709\u70b9\u9ebb\u70e6\uff09\u3002
\u540c\u6837\uff0c\u53ef\u4ee5\u4f7f\u7528while\u548cfor\u5b9e\u73b0\u7684\u4e5f\u53ef\u4ee5\u4f7f\u7528do\u2026\u2026while\u5b9e\u73b0\uff08\u4e0d\u8fc7\uff0c\u9700\u8981\u5148\u7528if\u8fdb\u884c\u5224\u65ad\u662f\u5426\u4f1a\u6267\u884c\u7b2c\u4e00\u6b21\uff09
1\u3001For \u2026\u2026Next \u8bed\u53e5\uff0c\u9002\u7528\u4e8e\u987a\u5e8f\u64cd\u4f5c
\u4f8b1.\u5728\u7acb\u5373\u7a97\u53e3\u8f93\u51fa1\u5230100
For n=1 to 100 '\u4ece1\u5230100 \uff0c\u6267\u884c\u4e0b\u884c\u4ee3\u7801
debug.Print n
next n
2\u3001For\u2026\u2026Each\u2026\u2026Next\u8bed\u53e5\uff0c\u9002\u7528\u4e8e\u96c6\u5408\u7684\u64cd\u4f5c
\u4f8b2.\u8f93\u51fa\u6307\u5b9a\u5355\u5143\u683c\u533a\u57df\u6240\u6709\u5355\u5143\u683c\u7684\u5185\u5bb9
For Each Cell in myRange '\u904d\u5386\u533a\u57df\u5185\u7684\u6240\u6709\u5355\u5143\u683c
debug.Print Cell.Value
next Cell
3\u3001Do While \u6761\u4ef6 \u2026\u2026Loop \u8bed\u53e5\u3002
\u4f8b3\u3001\u5728\u7acb\u5373\u7a97\u53e3\u8f93\u51fa1\u5230100
n=0
Do While n<=100'\u5f53n\u5c0f\u4e8e\u7b49\u4e8e100\u65f6 \uff0c\u6267\u884c\u4e0b\u884c\u4ee3\u7801\uff0c\u5426\u5219\u9000\u51fa
n=n 1
Debug.Print n
Loop
4\u3001While \u6761\u4ef6\u2026\u2026 Wend \u8bed\u53e5\u3002
\u4f8b4\u3001\u5728\u7acb\u5373\u7a97\u53e3\u8f93\u51fa1\u5230100
n=0
While n<=100'\u5f53n\u5c0f\u4e8e\u7b49\u4e8e100\u65f6 \uff0c\u6267\u884c\u4e0b\u884c\u4ee3\u7801\uff0c\u5426\u5219\u9000\u51fa
n=n 1
Debug.Print n
Wend
5\u3001Do \u2026\u2026Loop Until \u6761\u4ef6 \u8bed\u53e5\u3002
\u4f8b5\u3001\u5728\u7acb\u5373\u7a97\u53e3\u8f93\u51fa1\u5230100
n=0
Do '\u6267\u884c\u4e0b\u884c\u4ee3\u7801
n=n 1
Debug.Print n
Loop Until n >100 \u2018\u5f53n\u5927\u4e8e100\u65f6\u9000\u51fa\u5faa\u73af
6\u3001Do \u2026\u2026Loop While \u8bed\u53e5 \uff0c\u9b3c\u8001\u7684\u601d\u7ef4\u771f\u662f\u6700\u8be1\u5f02\uff0c\u628aWhile\u653e\u5728Loop\u540e\u9762\u5374\u4e0d\u662f\u9000\u51fa\u5faa\u73af\u7684\u6761\u4ef6\uff0c\u800c\u662f\u7ee7\u7eed\u6267\u884c\u5faa\u73af\u7684\u6761\u4ef6\u3002\u771f\u4ee4\u6c49\u8bed\u601d\u7ef4\u8d39\u89e3\u3002
\u4f8b6\u3001\u5728\u7acb\u5373\u7a97\u53e3\u8f93\u51fa1\u5230100
n=0
Do '\u6267\u884c\u4e0b\u884c\u4ee3\u7801
n=n 1
Debug.Print n
Loop While n <=100 \u2018\u5f53n\u5c0f\u4e8e\u7b49\u4e8e100\u65f6 \uff0c\u7ee7\u7eed\u6267\u884c\u5faa\u73af\u3002
for each循环:不需要事先给定初值,末值和步长,他是自动遍历给定的集合体的所有值。
扩展阅读:vba编程必背50个程序 ... vba入门实例 ... unknown hard error ... vba api教程 ... fnf国人模组 vs sanx ... gt overclocking support ... 橘子盘搜网页入口 ... vba编程入门教程 ... 老是弹出ctfmon exe ...