dim 圈数 as byte
for 圈数=1 to 50 step 1 If 学生.要求=退赛 exit for End If Next 圈数 End Sub
当然,这只是一个实例,帮助你对For—next语句的理解,下面我们来用一个实例来讲解For-next语句!
问题:求1到1000的自然数的和。程序编为: 复制内容到剪贴板 代码:
Sub mysum()
Dim Lsum As Long, i As Long For i = 1 To 1000 Lsum = Lsum + i Next
MsgBox \到1000的自然数和为:\End Sub
for_next-1到1000自然数的和.rar (6.14 KB) 以下代码由老朽提供 引用:
ggsmart说明:以下代码为38度OFFICE技术论坛的老朽版主提供,主要是帮助大家对VBA语句的认识.
复制内容到剪贴板 代码:
撰写:38度:老朽
'日期:2009-7-1 上午 11:40:59 Sub 求1到10000之间偶数和() Dim I&, J&
For I = 0 To 10000 Step 2 J = J + I Next
MsgBox \到10000之间偶数和为\End Sub
复制内容到剪贴板 代码:
'撰写:38度:老朽
'日期:2009-7-1 上午 11:40:59 Sub 求1到10000之间偶数和2() Dim I&, J&
For I = 10000 To 1 Step -2 J = J + I Next
MsgBox \到10000之间偶数和为\End Sub
复制内容到剪贴板 代码:
'撰写:38度:老朽
'日期:2009-7-1 上午 11:40:59 Sub 求1到10000之间奇数和() Dim I&, J&
For I = 1 To 10000 Step 2 J = J + I Next
MsgBox \到10000之间奇数和为\End Sub
复制内容到剪贴板 代码:
'撰写:38度:老朽
'日期:2009-7-1 上午 11:40:59 Sub 求1到10000之间奇数和2() Dim I&, J&
For I = 9999To 1 Step -2'此句于2009年8月18日纠正 J = J + I Next
MsgBox \到10000之间奇数和为\End Sub 引用:
感谢109楼artemis_xu朋友对以上代码的纠正! 复制内容到剪贴板 代码:
'撰写:38度:老朽
'日期:2009-7-1 上午 11:40:59
Sub 求1到10000之间能被5整除的数之和() Dim I&, J&
For I = 0 To 10000 Step 5 J = J + I Next
MsgBox \到10000之间能被5整除的数之和为\End Sub
复制内容到剪贴板 代码:
'撰写:38度:老朽
'日期:2009-7-1 上午 11:40:59
Sub 求1到10000之间能被5整除的数之和2() Dim I&, J&
For I = 10000 To 1 Step -5 J = J + I Next
MsgBox \到10000之间能被5整除的数之和为\End Sub
程序流程控制——For—Each 循环语句 ===============================
有了前面对循环一词的理解,这里我们不用再多说,如果你知道了For—next语句的工作原理,这里再来学习For—each循环以及下面我们接着要讲的句式,那就相当简单了,同样的工作原理。
学会了吃苹果,那么离会吃梨的道路还会远吗?
呵呵,只是开个小小的玩笑,下面我们继续,首先来看看For—Each语句的句式:
For Eacn 元素变量 In 对象集合或数组名称 语句块1 [Exit For] 语句块2 next 元素变量
和上面For—next句式是一样的工作原理。
这里的?元素变量?是用来遍历集合或数中中元素的变量,它从集合或数组的第一个元素开始,直到最后一个元素,然后退出循环。
这里我们举个例子,把当前工作薄中工作表的名称写在A列,程序为: 复制内容到剪贴板 代码:
Sub shtname()
Dim i As Integer, sht As Worksheet i = 1
For Each sht In Worksheets Cells(i, 1) = sht.Name
i = i + 1 '让写入名称的单元格下移一行 Next End Sub
for-each返回工作表名称.rar (7.52 KB) for-each返回工作表名称.rar (7.52 KB)
程序流程控制——Do While语句 ===========================
Do While也是循环语句,它分为两种情况,一种是把循环条件放在开头,一种是把循环条件放在结尾。
1、开头判断循环条件 语句格式:
Do Wihle 循环条件 语句块1 [Exit Do] 语句块2 Loop
首先判断循环条件,条件为真则执行Do到Loop之间的语句。 2、结尾判断循环条件 语句格式: Do
语句块1 [Exit Do] 语句块2
Loop Wihle 循环条件
先执行一次Do到Loop之间的语句,再判断循环条件,满足条件则进行循环。
两种格式的区别:因为第二种格式是把循环体放在尾部,得先执行一遍语句再进行循环条件判断,所以,同样的条件,第二种格式的循环会比第一种多执行一次循环部份的语句。 我们用Do While语句来解决求1——1000的自然数的和的问题: 复制内容到剪贴板 代码:
Sub mysum()
Dim Lsum As Long, i As Long i = 1
Do While i <= 1000 Lsum = Lsum + i i = i + 1 Loop
MsgBox \到1000的自然数和为:\End Sub
do while1到1000自然数的和.rar (6.19 KB) do while1到1000自然数的和.rar (6.19 KB)
程序流程控制——Do Until 语句
这个和Do While语句类似,它也有两种形式,学了Do While 语句,再看这个,就可以无师自通了。下面就简单介绍下: 1、开头判断循环条件 语句格式:
Do Until 循环条件 语句块1 [Exit Do] 语句块2 Loop
2、结尾判断循环条件 语句格式: Do
语句块1 [Exit Do] 语句块2
Loop Until 循环条件
执行Do 和Loop之间的指令,直到循环条件为真时退出循环。
直到循环条件为真时退出循环,这是Do Until 与 Do While的区别。而它两种语句格式的区别,也是第二种比第一种多执行一次循环部分的语句。 还是求1——1000自然数的问题,这次我们换用Do Untile语句: 代码:
Sub mysum()
Dim Lsum As Long, i As Long i = 1 Do
Lsum = Lsum + i i = i + 1
Loop Until i > 1000
MsgBox \到1000的自然数和为:\End Sub
do until1到1000自然数的和.rar (6.19 KB) do until1到1000自然数的和.rar (6.19 KB)
是的,你看了上面的代码,觉得和楼上我们写的代码变化并不大。这里我用的是第二种格式(结尾判断)的语句,你可以试着用第一种句式写一写,或者改一改其他的问题.这里,我只是举个例子,路还得让你自己走! 程序流程控制——Go to 语句 ===========================
Go to 在英语里是什么?相信大家的英语都比我好得太多,不用多说。其实Go to 语句的作用用定两个英语单词就说明问题了,?Go to 地点?就是去到哪儿的意思。
Go to 语句是将程序转到指定的标签的语句位臵,然后继续往下执行。Go to 语句通常用来作错误处理。
同样的,还是用Go to 语句来做1——1000自然数的和: 代码:
Sub mysum()
Dim Lsum As Long, i As Long i = 1
x: '为go to 语句设臵的标签,必须以英文状态下的冒号结尾 Lsum = Lsum + i i = i + 1
If i <= 1000 Then GoTo x '如果i<=1000,则程序跳到标签X处 MsgBox \到1000的自然数和为:\End Sub
go to 1到1000自然数的和.rar (6.34 KB) go to 1到1000自然数的和.rar (6.34 KB)
注意:为Go to 语句设臵的标签必须以英文状态的冒号结尾。
有人说,为了方便程序的阅读,规范程序,在程序里也避免少用Go to 语句,我很赞同,也希望你们能养成这个习惯。 用户窗体
-----------------------
用户窗体(UserForm对象)是VBA的另一类对象。它表现出来是一个窗口或对话框,如前面我们说的MsgBox与InputBox语句弹出来的都属于窗体。使用窗体可以提供一个形象的用户界面。同我们可以在工作表(WorkSheet)上在添加不同的控件一样,在这个界面上,我们可以添加命令按钮、标签、图像、列表框等控件,用户可以通过修改控件的属性、编写不同的事件过程在程序运行过程中与程序进行交互。 1、添加窗体
如果你还没有忘记怎么插入模块?那请用同样的方法插入一个用户窗体。