ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: yuanzhuping

VBA常用技巧代码解析

    [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-3-25 16:59 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

第8部分 控件与用户窗体

本帖已被收录到知识树中,索引项:开发帮助和教程
技巧101         自动选择文本框内容
       如果希望光标进入文本框时能自动选择文本框内容,可以在文本框的MouseUp事件中来完成,如下面的代码所示。
  1. #001  Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  2. #002      With TextBox1
  3. #003          If Button = 2 Then
  4. #004              .SelStart = 0
  5. #005              .SelLength = Len(.Text)
  6. #006          End If
  7. #007      End With
  8. #008  End Sub
复制代码
代码解析:
       文本框的MouseUp事件,在光标进入文本框释放鼠标右键时自动选择文本框内容。
       MouseUp事件在用户释放鼠标按键时发生,语法如下:
Private Sub object_MouseUp( ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)
       参数object是必需的,一个有效的对象。
       参数Button是可选的,设置引起该事件的鼠标按键的整数值,如表格所示。
Snap1.jpg
       参数Shift是可选的,Shift、Ctrl 和Alt的状态。
       参数X和参数Y是可选的,窗体、框架或页的位置的横坐标与纵坐标。
       第3行到第6行代码,如果用户进入文本框释放鼠标右键,设置文本框的SelStart 属性为0,SelLength属性为文本框的全部字符数。
       SelStart 属性指定选中文本的起点,语法如下:
object.SelStart [= Long]
       参数object是必需的,一个有效的对象。
       参数Long是可选的,指定选中文本的起点。
       SelLength 属性指定文本框或组合框的文本部分中选中的字符数,语法如下:
object.SelLength [= Long]
      参数object是必需的,一个有效的对象。
       参数Long是可选的,指定选中的字符数。
       运行窗体,当光标进入文本框释放鼠标右键时自动选择文本框内容,如图所示。
Snap2.jpg

[ 本帖最后由 yuanzhuping 于 2009-3-28 23:28 编辑 ]

技巧101 自动选择文本框内容.rar

9.22 KB, 下载次数: 1152

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-3-25 17:29 | 显示全部楼层

第8部分 控件与用户窗体

技巧102         设置文本框数据格式
       文本框在用来输入数据时,除了限制输入的数据类型外,还可以设置文本框的数据格式,如下面的代码所示。
  1. #001  Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  2. #002      TextBox1 = Format(TextBox1, "0.00")
  3. #003  End Sub
  4. #004  Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  5. #005      TextBox2 = Format(TextBox2, "0.00")
  6. #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函数的帮助。
  1. #001  Private Sub TextBox1_Change()
  2. #002      TextBox3 = Format(Val(TextBox1) * Val(TextBox2), "0.00")
  3. #003  End Sub
  4. #004  Private Sub TextBox2_Change()
  5. #005      TextBox3 = Format(Val(TextBox1) * Val(TextBox2), "0.00")
  6. #006  End Sub
复制代码
代码解析:
       文本框的Change事件过程,在两个文本框输入完数据后,使用文本框的Change事件使TextBox3显示其相乘的金额并格式化为两位小数的数据格式。
       Change事件在控件的 Value 属性改变时发生,语法如下:
Private Sub object_Change( )
       参数object是必需的,一个有效的对象。
       Change事件过程可以使显示在控件上的数据同步或一致。在本例中,当TextBox1或TextBox2的数据发生改变时,两者相乘的金额的金额也随之改变并在TextBox3中显示。
       因为文本框的数据类型是文本字符串,不能直接进行计算的,所以计算前先使用Val函数转换为数字,才能进行计算。
       运行窗体,输入数据后格式化为两位小数的数据格式,如图所示。
Snap3.jpg

[ 本帖最后由 yuanzhuping 于 2009-3-28 23:28 编辑 ]

技巧102 设置文本框数据格式.rar

10.32 KB, 下载次数: 1271

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-3-25 17:31 | 显示全部楼层

第8部分 控件与用户窗体

技巧103         限制文本框的输入长度
       在使用文本框输入数据时,可能希望限制能输入的字符长度,即只能输入一定长度的字符,超过设置数值就不能输入,这时可以通过设置文本框的MaxLength属性来实现,如下面的代码所示。
  1. #001  Private Sub Worksheet_Activate()
  2. #002      Me.TextBox1.MaxLength = 6
  3. #003  End Sub
复制代码
代码解析:
       工作表的激活事件过程,将文本框的MaxLength属性设置为6,使文本框只能输入6个字符,超过6个字符即不能输入。
       应用于文本框控件的MaxLength属性规定用户可以在文本框中输入的最多字符数,语法如下:
object.MaxLength [= Long]
       参数object是必需的,一个有效的对象。
       参数Long是可选的,整数,表示所允许的字符数。
       如果将MaxLength属性设置为0,表示只要内存允许则没有限制。

[ 本帖最后由 yuanzhuping 于 2009-3-28 23:28 编辑 ]

技巧103 限制文本框的输入长度.rar

6.95 KB, 下载次数: 1170

TA的精华主题

TA的得分主题

发表于 2009-3-25 18:26 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我看了你的第370楼中的EXCEL中的定时器,我把你的代码中的间隔时间改为3秒以上按停止按钮就不起效了,是怎么回事?应如何实现可以间隔3秒以上呢?

[ 本帖最后由 cxmgxl 于 2009-3-25 18:33 编辑 ]

技巧66 Excel中的“定时器”.rar

7.99 KB, 下载次数: 732

TA的精华主题

TA的得分主题

发表于 2009-3-25 18:30 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-3-26 00:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
忠心感谢楼主了,,,你太强了,,,,我永远支持你....................................

TA的精华主题

TA的得分主题

发表于 2009-3-26 07:44 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-3-26 08:24 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 ykx042907 于 2009-3-25 11:11 发表
请问袁版主:何时要用VBA中的API函数和类模块?又如何用???

此问题请袁版主帮忙解答,谢谢!

TA的精华主题

TA的得分主题

发表于 2009-3-26 13:29 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-3-26 14:40 | 显示全部楼层
非常感谢版主整理发表,辛苦了!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-24 20:51 , Processed in 0.052470 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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