织梦CMS - 轻松建站从此开始!

VBA教程、excel VBA编程、VBA视频、VBA控件,VBA应用教程,vba技巧

多个文本框数据相加excel vba实现方法

时间:2010-02-04 09:38来源:未知 作者:vba技术联盟 点击:
在技巧102 中,我们在TextBox1、TextBox2中输入完数据后,利用文本框的Change事件使TextBox3显示其两者相乘的金额,但是如果窗体中有多个文本框,需要在每一个文本框的Change事件中写上相同的重复代码,因此使用类模块可以简化代码。 在附件的窗体有七个文本框,其中六个用

在技巧102 中,我们在TextBox1、TextBox2中输入完数据后,利用文本框的Change事件使TextBox3显示其两者相乘的金额,但是如果窗体中有多个文本框,需要在每一个文本框的Change事件中写上相同的重复代码,因此使用类模块可以简化代码。
       在附件的窗体有七个文本框,其中六个用来输入数据,一个用来显示其他六个文本框相加后的合计数,首先打开VBE,插入一个类模块建立一个类,类模块的名字就是类的名字修改为“cmds”,在类模块中输入下面的代码:
Public WithEvents cmd As MSForms.TextBox
代码解析:
       使用Public语句声明变量cmd是用来响应由TextBox对象触发的事件的对象变量。
       在窗体的Initialize事件中写入下面的代码:

复制内容到剪贴板
代码:
#001  Dim col As New Collection
#002  Private Sub UserForm_Initialize()
#003      Dim i As Integer
#004      Dim myc As cmds
#005      For i = 1 To 6
#006          Set myc = New cmds
#007          Set myc.cmd = Me.Controls("TextBox" & i)
#008          col.Add myc
#009      Next
#010      Set myc = Nothing
#011  End Sub

代码解析:
       第1行代码在模块顶部声明变量col的类型为集合。
       第5行到第9行代码,将窗体中的六个文本框赋给col集合。
(关于类模块请参阅论坛中有关的资料。)
       在类模块中写入下面的代码:

复制内容到剪贴板
代码:
#001  Private Sub cmd_Change()
#002      Dim i As Integer
#003      Dim Dval As Double
#004      For i = 1 To 6
#005          Dval = Dval + Val(UserForm1.Controls("TextBox" & i))
#006          UserForm1.TextBox7.Value = Dval
#007      Next
#008  End Sub

代码解析:
       窗体中的六个文本框统一的Change事件,当任何一个文本框中的数据发生变化时,所有文本框相加的合计数显示在最后一个文本框中。
技巧106 多个文本框数据相加.rar (10.69 KB)

(责任编辑:vba技术联盟)
顶一下
(3)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
栏目列表
推荐内容