加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【VBA】遍历控件的方法

(2017-03-19 17:44:00)
分类: 置顶

 【VBA】遍历控件的方法 
━━━━━━━━━━━━━━━━━━━━━━━━━

如果窗体或工作表中的控件很多,在写代码时,如果是相同的代码,可以使用循环语句遍历控件,无需每个控件都写相同的代码,以减少代码量。 

一、 使用名称中的变量遍历控件 
━━━━━━━━━━━━━━━━━━━━━━━━━ 

如果控件使用系统缺省名称,如“TextBox1”、“TextBox2”,前面是固定的字符串,后面是序号的,可以使用For...Next 语句循环遍历控件。 
对于窗体中的控件,如下面的代码所示。 

Private Sub Commanon1_Click() 
    
Dim As Integer 
    
For To 
        Me.Controls("TextBoxi"" 
    Next 
End Sub 

对于工作表中的控件,如下面的代码所示。 

Private Sub Commanon1_Click() 
    
Dim As Integer 
    
For To 
        Me.OLEObjects("TextBoxi).Object.Text "" 
    Next 
End Sub 

二、 使用对象类型遍历控件 
━━━━━━━━━━━━━━━━━━━━━━━━━ 

如果控件的名称没有规律,可以使用For Each...Next 语句循环遍历所有控件,使用TypeName函数返回控件的对象类型,根据控件的对象类型进行相应的操作。 
对于窗体中的控件,如下面的代码所示。

 
Private Sub Commanon1_Click() 
    
Dim Ctr As Control 
    For Each Ctr In Me.Controls 
        If TypeName(Ctr"TextBoxThen 
            
Ctr "" 
        End If 
    Next 
End Sub 


对于工作表中的控件,则使用下面的代码。

 
Private Sub Commanon1_Click() 
    
Dim Obj As OLEObject 
    For Each Obj In Me.OLEObjects 
        If TypeName(Obj.Object"TextBoxThen 
            
Obj.Object.Text "" 
        End If 
    Next 
End Sub 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有