设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1344|回复: 3
打印 上一主题 下一主题

[窗体] 如何遍历另一个已经打开窗体中的所有控件?

[复制链接]
跳转到指定楼层
1#
发表于 2003-12-2 15:56:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何遍历另一个已经打开窗体中的所有控件?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2003-12-2 21:26:00 | 只看该作者
使用 For Each...Next 语句
   

For Each...Next 语句会重复一个语句块,而它是作用于集合中的每个对象或是数组中的每个元素。当循环执行一次则 Visual Basic 会自动设置一个变量。例如,下面的过程会关闭所有的窗体,除了窗体包含的过程正在运行以外。

Sub CloseForms()
    For Each frm In Application.Forms
        If frm.Caption <> Screen. ActiveForm.Caption Then frm.Close
    Next
End Sub

下面的代码会在数组的每个元素中循环,并且将每个值设置成它的索引变量 I 的值。

Dim TestArray(10) As Integer, I As Variant
For Each I In TestArray
    TestArray(I) = I
Next I

对某范围的单元格做循环
可以使用 For Each...Next 循环对某范围的单元格做循环。下面的过程会对于 Sheet1 中的 A110 范围做循环,并将任何绝对值小于 0.01 的号码设为 0。

Sub RoundToZero()
    For Each myObject in myCollection
        If Abs(myObject.Value) < 0.01 Then myObject.Value = 0
    Next
End Sub

在完成前退出 For Each...Next 循环
可以使用 Exit For 语句来退出 For Each...Next 循环。例如,当错误发生时可以在 If...Then...Else 语句或是 Select Case 语句的 True 语句块中使用 Exit For 语句,它是专门用来检查此错误的。如果没有错误发生,If...Then...Else 语句的值为 False,则循环会象预期那样运行。

下面的示例,测试在 A1:B5 范围内找出第一个不含数值的单元。如果有找到此类单元,则会有信息显示并用 Exit For 语句退出循环。

Sub TestForNumbers()
    For Each myObject In MyCollection
        If IsNumeric(myObject.Value) = False Then
            MsgBox "Object contains a non-numeric value."
            Exit For
        End If
    Next c
End Sub

3#
发表于 2003-12-2 21:34:00 | 只看该作者
解惑哦~!!!!

好冬冬,顶之~!
4#
发表于 2003-12-3 17:42:00 | 只看该作者
版主就是版主,好贴!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-2-18 15:44 , Processed in 0.085629 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表