|
楼主 |
发表于 2009-3-25 17:29
|
显示全部楼层
第8部分 控件与用户窗体
技巧102 设置文本框数据格式
文本框在用来输入数据时,除了限制输入的数据类型外,还可以设置文本框的数据格式,如下面的代码所示。- #001 Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
- #002 TextBox1 = Format(TextBox1, "0.00")
- #003 End Sub
- #004 Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
- #005 TextBox2 = Format(TextBox2, "0.00")
- #006 End Sub
复制代码 代码解析:
文本框的Exit事件过程,在文本框输入数据时使用Format函数格式化为两位小数格式。
控件的Exit事件在同一窗体中的一个控件即将把焦点转移到另一个控件之前发生,语法如下:
Private Sub object_Exit( ByVal Cancel As MSForms.ReturnBoolean)
参数Object是必需的,一个有效的对象。
参数Cancel是必需的,事件状态。如果设置为False表示由该控件处理这个事件(默认方式)。设置为True表示由应用程序处理这个事件,并且焦点留在当前控件上。
当文本框在输入完数据失去焦点时使用Format函数格式化自定义数值格式。Format函数语法如下:
Format(expression[, format[, firstdayofweek[, firstweekofyear]]])
参数expression是必需的,任何有效的表达式。
参数format是可选的,有效的命名表达式或用户自定义格式表达式。
参数firstdayofweek是可选的,常数,表示一星期的第一天。
参数firstweekofyear是可选的,常数,表示一年的第一周。
在本例中,将文本框的数据格式化成自定义的两位小数的数值格式,关于Format函数格式化日期和时间等其他数据请参阅VBA中Format函数的帮助。- #001 Private Sub TextBox1_Change()
- #002 TextBox3 = Format(Val(TextBox1) * Val(TextBox2), "0.00")
- #003 End Sub
- #004 Private Sub TextBox2_Change()
- #005 TextBox3 = Format(Val(TextBox1) * Val(TextBox2), "0.00")
- #006 End Sub
复制代码 代码解析:
文本框的Change事件过程,在两个文本框输入完数据后,使用文本框的Change事件使TextBox3显示其相乘的金额并格式化为两位小数的数据格式。
Change事件在控件的 Value 属性改变时发生,语法如下:
Private Sub object_Change( )
参数object是必需的,一个有效的对象。
Change事件过程可以使显示在控件上的数据同步或一致。在本例中,当TextBox1或TextBox2的数据发生改变时,两者相乘的金额的金额也随之改变并在TextBox3中显示。
因为文本框的数据类型是文本字符串,不能直接进行计算的,所以计算前先使用Val函数转换为数字,才能进行计算。
运行窗体,输入数据后格式化为两位小数的数据格式,如图所示。
[ 本帖最后由 yuanzhuping 于 2009-3-28 23:28 编辑 ] |
|