ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

VBA常用技巧代码解析

    [复制链接]

TA的精华主题

TA的得分主题

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

在学习,谢谢您的讲解

本帖已被收录到知识树中,索引项:开发帮助和教程

TA的精华主题

TA的得分主题

发表于 2009-3-29 16:50 | 显示全部楼层
学习学习!!

TA的精华主题

TA的得分主题

发表于 2009-3-29 21:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
楼主好强大啊 太崇拜你了

TA的精华主题

TA的得分主题

发表于 2009-3-30 09:57 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
楼主强,辛苦了并期待全集,谢谢!

TA的精华主题

TA的得分主题

发表于 2009-3-30 10:01 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
今天终于赶上进度了
连续看下来又有了点进步的感觉啦,感谢版主!

TA的精华主题

TA的得分主题

发表于 2009-3-30 12:36 | 显示全部楼层

TA的精华主题

TA的得分主题

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

第8部分 控件与用户窗体

技巧106         多个文本框数据相加
       在技巧102 中,我们在TextBox1、TextBox2中输入完数据后,利用文本框的Change事件使TextBox3显示其两者相乘的金额,但是如果窗体中有多个文本框,需要在每一个文本框的Change事件中写上相同的重复代码,因此使用类模块可以简化代码。
       在附件的窗体有七个文本框,其中六个用来输入数据,一个用来显示其他六个文本框相加后的合计数,首先打开VBE,插入一个类模块建立一个类,类模块的名字就是类的名字修改为“cmds”,在类模块中输入下面的代码:
Public WithEvents cmd As MSForms.TextBox
代码解析:
       使用Public语句声明变量cmd是用来响应由TextBox对象触发的事件的对象变量。
       在窗体的Initialize事件中写入下面的代码:
  1. #001  Dim col As New Collection
  2. #002  Private Sub UserForm_Initialize()
  3. #003      Dim i As Integer
  4. #004      Dim myc As cmds
  5. #005      For i = 1 To 6
  6. #006          Set myc = New cmds
  7. #007          Set myc.cmd = Me.Controls("TextBox" & i)
  8. #008          col.Add myc
  9. #009      Next
  10. #010      Set myc = Nothing
  11. #011  End Sub
复制代码
代码解析:
       第1行代码在模块顶部声明变量col的类型为集合。
       第5行到第9行代码,将窗体中的六个文本框赋给col集合。
(关于类模块请参阅论坛中有关的资料。)
       在类模块中写入下面的代码:
  1. #001  Private Sub cmd_Change()
  2. #002      Dim i As Integer
  3. #003      Dim Dval As Double
  4. #004      For i = 1 To 6
  5. #005          Dval = Dval + Val(UserForm1.Controls("TextBox" & i))
  6. #006          UserForm1.TextBox7.Value = Dval
  7. #007      Next
  8. #008  End Sub
复制代码
代码解析:
       窗体中的六个文本框统一的Change事件,当任何一个文本框中的数据发生变化时,所有文本框相加的合计数显示在最后一个文本框中。
运行窗体在文本框中输入数据结果如图所示。
Snap1.jpg

技巧106 多个文本框数据相加.rar

10.69 KB, 下载次数: 1213

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-3-30 14:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

第8部分 控件与用户窗体

技巧107         控件跟随活动单元格
       在工作表中使用控件时一般都把控件放在工作表的上部,如果工作表中数据较多,当页面滚动到工作表下面的区域时,控件会离开当前可视区域,这时操作起来很不方便。解决方法除了冻结工作表的第一行放置控件的外,还可以使控件出现在选定的单元格位置,如下面的代码所示。
  1. #001  Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2. #002      With Me.CommandButton1
  3. #003          .Top = Target.Top
  4. #004          .Left = Target.Left + Target.Width
  5. #005      End With
  6. #006  End Sub
复制代码
代码解析:
       工作表的SelectionChange事件,使工作表中的按钮控件出现在选定单元格的右边。
       第3行代码,设置按钮的Top属性等于选定单元格的Top属性。Top属性设置对象顶端到第一行顶端的距离。
       第4行代码,设置按钮的Left属性等于选定单元格的Left属性加上选定单元格的宽度,即按钮出现在选定单元格的右边。Left属性设置对象左边界至 A 列左边界的距离。
       当单击工作表区域的任一单元格,按钮出现在单元格的右边,如图所示。
Snap1.jpg

技巧107 控件跟随活动单元格.rar

7.39 KB, 下载次数: 1143

TA的精华主题

TA的得分主题

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

强烈支持, 感谢楼主的无私劳动!

我是VBA新兵, 非常感谢楼主的无私劳动! 支持!

TA的精华主题

TA的得分主题

发表于 2009-3-30 19:17 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-25 03:49 , Processed in 0.046792 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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