VB的For…Next循环语句

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VB的For…Next循环语句
当你知道你需要重复运⾏多少次某段语句时,可以使⽤For…Next语句。

它的语法如下:
For 计数器 = 开始 To 结束 [步长]
语句1
语句2
语句N
Next [计数器]
括号⾥⾯的代码是可选的。

计数器是个储存反复次数的数字型变量,开始是你期望的起始计数点,结束则表明循环应该执⾏多少次。

例如,你想要重复执⾏循环⾥的语句5次,使⽤下述For语句:
For counter = 1 To 5
你的语句
Next
当VB遇到关键字Next时,它将回到循环的开始处,并且再次执⾏循环⾥⾯的代码,直到计数器到达结束值。

⼀旦计数器的值⼤于关键字To 后⾯的数值,VB就会跳出循环。

因为计数器变量在每次执⾏循环后会⾃动地变化,它早晚会超出结束的值。

每次VB执⾏循环⾥的语句后,变量计数器的值会默认地增加1,你可以使⽤Step语句来改变这个默认设置。

例如,要使计数器每次增加3,就可以使⽤以下语句:
For counter = 1 To 5 Step 3
你的代码
Next counter
当VB遇到上⾯的语句,它会执⾏循环⾥的语句两次。

在第⼀次的循环⾥,counter等于1,第⼆次则等于4(3+1)。

在执⾏两次循环
后,counter就等于7(4+3),这导致VB退出该循环。

注意,步长(Step)是可选的。

可选语句总是显⽰则⽅括号⾥⾯(参加本段开头部分的语法)。

步长不需要明确,除⾮它不等于1。

你可以在Step后⾯放个负值作为步长,那么VB每次遇到关键字Next后都会将计数器减⼩。

关键字Next后⾯的变量名称(counter)也是可选的,然⽽,好的编程习惯是要强制在关键字Next后⾯加上计数器。

如何将For…Next循环使⽤在Excel⾥⾯呢?假使你只想要在你的销售报告⾥⾯包括某⼏个特定⽉份的产品销售,当你从Access导⼊数据时,你同样也会将那些销售额为0的数据⾏⼀起导⼊。

你如何快速取出数据为0的⾏呢?尽管,有很多种⽅法可以解决这个问题,但是,我们来看看如何使⽤For…Next循环来处理这个问题吧。

1. 在VB窗⼝,在当前⼯程⾥插⼊⼀个模块并且命名为ForNextLoop
2. 在ForNextLoop模块⾥输⼊下列过程:
Sub DeleteZeroRows()
Dim totalR As Integer
Dim r As Integer
Range("A1").CurrentRegion.Select
totalR = Selection.Rows.Count
Range("B2").Select
For r = 1 To totalR-1
If ActiveCell = 0 Then
Selection.EntireRow.Delete
totalR = totalR – 1
Else
ActiveCell.Offset(1, 0).Select
End If
Next r
End Sub
3. 切换到Excel界⾯,并且准备下述表格:
4. 运⾏过程DeleteZeroRows。

我们来⼀⾏接⼀⾏地检查⼀下过程DeleteZeroRows。

开始两语句计算当前区域的总⾏数,并且将该值储存于变量totalR,接下来,VB选择单元格B2然后遇到关键字For。

因为电⼦表格的第⼀⾏包含了列标题,所以要从总⾏数⾥减掉1(totalR-1)。

VB将需要执⾏循环⾥⾯的指令6次。

嵌套在循环⾥⾯的条件语句(If…Then…Else)告诉VB根据当前活动单元格的值作出决定。

如果该值为0,VB就删除当前⾏,并且将总⾏数减掉1。

否则,条件为假,因此,VB将选择下⼀⾏的单元格。

VB每完成⼀次循环,它就跳到关键字For来⽐较r的值和totalR-1的值。

当过程结束后,销售表⾥就不会包含没有销售的产品了。

技巧:成对语句
For和Next必须是成对的,如果有⼀个漏掉了,VB就将产⽣⼀个错误信息“For没有Next”。

相关文档
最新文档