1.While...Wend 语句 只要指定的条件为 True,则会重复执行一系列的语句。 语法 While condition [statements] .. Wend 2.Do...Loop 2.1 第一种用法 用 Do 循环重复执行一语句块,且重复次数不定。Do...Loop 语句有几种演变形式,但每种都计算数值条件以决定是否继续执行。如同 If...Then condition 必须是一个数值或者值为 True(非零)或 False(零)的表达式。 在下面的 Do...Loop 循环中,只要 condition 为 True 就执行 statements。 do while condition statements .. Loop 2.2 第二种用法 Do...Loop 语句的另一种演变形式是先执行语句,然后在每次执行后测试 condition。这种形式保证 statements 至少执行一次: Do statements Loop While condition 注:其它两种演变形式类似于前两个,所不同的是,只要 condition 为 False 而不是 True,它们就执行循环。 循环零次或多次 Do Until condition statements Loop 至少循环一次 Do statements Loop Until condition 3.For...Next 在不知道循环内需要执行多少次语句时,宜用 Do 循环。但是,在知道要执行多少次时,则最好使用 For...Next 循环。与 Do 循环不同, For 循环使用一个叫做计数器的变量,每重复一次循环之后,计数器变量的值就会增加或者减少。For 循环的语法如下: For counter = start To end [Step increment] statements Next [counter] 参数 Counter、Start、end 和 increment 都是数值型的。 注意 increment 参数可正可负。如果 increment 为正,则 Start 必须小于等于 end,否则不能执行循环内的语句。如果 increment 为负,则 Start 必须大于等于 end,这样才能执行循环体。如果没有设置 Step,则 increment 缺省值为 1。 实例: 以下代码打印出所有有效的屏幕字体名: Private Sub Form_Click () Dim I As Integer For i = 0 To Screen.FontCount Print Screen.Fonts (i) Next End Sub 4.For Each...Next For Each...Next 循环与 For...Next 循环类似,但它对数组或对象集合中的每一个元素重复一组语句,而不是重复语句一定的次数。如果不知道一个集合有多少元素, For Each...Next 循环非常有用。 For Each...Next 循环的语法如下: For Each element In group statements Next elementt 例如,下面的子过程打开 Biblio.mdb,把每一个表的名字加到列表框中。 Sub ListTableDefs () Dim objDb As Database Dim MyTableDef as TableDef Set objDb = OpenDatabase("c:\vb\biblio.mdb",_ True,False) For Each MyTableDef In objDb.TableDefs () List1.AddItem MyTableDef.Name Next MyTableDef End Sub 请记住使用 For Each...Next 时的几点限制: 对集合,element 只能是 Variant 变量,或一般的 Object 变量,或“对象浏览器”中列出的对象。 对数组,element 只能是 Variant 变量。 For Each...Next 不能与用户自定义类型的数组一起使用,因为 Variant 不可能包含用户自定义类型。