ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

VBA常用技巧代码解析

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2009-4-29 17:02 | 显示全部楼层
本帖已被收录到知识树中,索引项:开发帮助和教程
谢谢袁版主,对不起,我不知道,我是新手,下次不会范这样的错误了。 在这里我学到不少东西,很是感激!
因为每个示例均有解析,这对我们初学者来说,简直是太好了,辛苦了,大侠!!!

TA的精华主题

TA的得分主题

发表于 2009-4-29 17:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
求教版主
技巧130中,添加Spreadsheet控件,如何操作,找不着控件啊。
工具箱只有这些内容:

[ 本帖最后由 zjdh 于 2009-4-29 17:54 编辑 ]
1.JPG

TA的精华主题

TA的得分主题

发表于 2009-4-29 18:50 | 显示全部楼层
太好的东西了。不过能否请楼主发快些,最好是能发包,俺想下载打印,当作入门的教材呢!!

TA的精华主题

TA的得分主题

发表于 2009-4-29 22:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
一下子发现这里很强大 哈哈 够我用的了

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-4-30 07:25 | 显示全部楼层
原帖由 zjdh 于 2009-4-29 17:46 发表
求教版主
技巧130中,添加Spreadsheet控件,如何操作,找不着控件啊。
工具箱只有这些内容:

在工具箱右击,选择附加控件,然后选择Spreadsheet控件。
Snap1.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-4-30 09:57 | 显示全部楼层

第8部分 控件与用户窗体

技巧131         使用Listview控件
131-2        在Listview控件中使用复选框
       在Listview控件中使用复选框,可以进行多重选择,示例代码如下:
  1. #001  Private Sub UserForm_Initialize()
  2. #002      Dim Itm As ListItem
  3. #003      Dim r As Integer
  4. #004      Dim c As Integer
  5. #005      With ListView1
  6. #006          .ColumnHeaders.Add , , "人员编号 ", 50, 0
  7. #007          .ColumnHeaders.Add , , "技能工资 ", 50, 1
  8. #008          .ColumnHeaders.Add , , "岗位工资 ", 50, 1
  9. #009          .ColumnHeaders.Add , , "工龄工资 ", 50, 1
  10. #010          .ColumnHeaders.Add , , "浮动工资 ", 50, 1
  11. #011          .ColumnHeaders.Add , , "其他  ", 50, 1
  12. #012          .ColumnHeaders.Add , , "应发合计", 50, 1
  13. #013          .View = lvwReport
  14. #014          .Gridlines = True
  15. #015          .FullRowSelect = True
  16. #016          .CheckBoxes = True
  17. #017          For r = 2 To Sheet2.[A65536].End(xlUp).Row - 1
  18. #018              Set Itm = .ListItems.Add()
  19. #019              Itm.Text = Sheet2.Cells(r, 1)
  20. #020              For c = 1 To 6
  21. #021                  Itm.SubItems(c) = Format(Sheet2.Cells(r, c + 1), "##,#,0.00")
  22. #022              Next
  23. #023          Next
  24. #024          End With
  25. #025      Set Itm = Nothing
  26. #026  End Sub
  27. #027  Private Sub CommandButton1_Click()
  28. #028      Dim r As Integer
  29. #029      Dim i As Integer
  30. #030      Dim c As Integer
  31. #031      r = Sheet1.[A65536].End(xlUp).Row
  32. #032      If r > 1 Then Sheet1.Range("A2:G" & r) = ""
  33. #033      With ListView1
  34. #034          For i = 1 To .ListItems.Count
  35. #035              If .ListItems(i).Checked = True Then
  36. #036                  Sheet1.Range("A65536").End(xlUp).Offset(1, 0) = .ListItems(i)
  37. #037                  For c = 1 To 6
  38. #038                      Sheet1.Cells(65536, c + 1).End(xlUp).Offset(1, 0) = .ListItems(i).SubItems(c)
  39. #039                  Next
  40. #040              End If
  41. #041          Next
  42. #042      End With
  43. #043  End Sub
复制代码
代码解析:
      第1行到第26行代码,用户窗体的Initialize事件过程,在窗体显示时将工作表中数据显示在Listview控件中,请参阅技巧131-1。
       其中第15行代码设置Listview控件的FullRowSelect属性为True,使用户可以选择整行。
       第16行代码设置Listview控件的CheckBoxes属性为True,使Listview控件在列表的每个项的旁边显示复选框。
       第27行到第43行代码,用户窗体中“保存”按钮的单击过程,将Listview控件中选中的项目写入到工作表中。
       第31、32行代码,删除工作表中原有的数据,
       第34、35行代码遍历Listview控件中所有的ListItem对象,判定其Checked值,如果为True,即说明其处于选中状态。
       第36行到第40行代码将Listview控件中选中的内容依次写入到工作表中。
       运行窗体,Listview控件显示工作表中的内容,单击“保存”按钮将如Listview控件中选中的内容依次写入到工作表中,如图所示。
Snap2.jpg

131-2 在Listview控件中使用复选框.rar

16.78 KB, 下载次数: 1234

TA的精华主题

TA的得分主题

发表于 2009-4-30 11:14 | 显示全部楼层

回复VBA常用技巧解析

坚决支持袁版,正是我们所需求的,继续关注中!

TA的精华主题

TA的得分主题

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

TA的精华主题

TA的得分主题

发表于 2009-4-30 14:44 | 显示全部楼层
超级豪华经典牛贴!!!!!!!
继续关注!!!!!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-4-30 16:38 | 显示全部楼层

第8部分 控件与用户窗体

技巧131         使用Listview控件
131-3        调整Listview控件的行距
       在使用Listview控件显示数据列表时,行距是由Listview控件所设置的字体大小决定的,无法自定义行距,即使调整了字体大小,行距还是很近。
       如果需要自定义Listview控件的行距,可以在窗体中添加一个ImageList控件,在ImageList控件中导入一张大小合适的空白图片,然后指定Listview控件的SmallIcons属性为ImageList控件中的图片,代码如下:
  1. #001  Private Sub UserForm_Initialize()
  2. #002      Dim Itm As ListItem
  3. #003      Dim r As Integer
  4. #004      Dim c As Integer
  5. #005      Dim Img As ListImage
  6. #006      With ListView1
  7. #007          .ColumnHeaders.Add , , "人员编号 ", 50, 0
  8. #008          .ColumnHeaders.Add , , "技能工资 ", 50, 1
  9. #009          .ColumnHeaders.Add , , "岗位工资 ", 50, 1
  10. #010          .ColumnHeaders.Add , , "工龄工资 ", 50, 1
  11. #011          .ColumnHeaders.Add , , "浮动工资 ", 50, 1
  12. #012          .ColumnHeaders.Add , , "其他  ", 50, 1
  13. #013          .ColumnHeaders.Add , , "应发合计", 50, 1
  14. #014          .View = lvwReport
  15. #015          .Gridlines = True
  16. #016          .FullRowSelect = True
  17. #017          Set Img = ImageList1.ListImages.Add(, , LoadPicture(ThisWorkbook.Path & "" & "1×25.bmp"))
  18. #018          .SmallIcons = ImageList1
  19. #019          For r = 2 To Sheet1.[A65536].End(xlUp).Row - 1
  20. #020              Set Itm = .ListItems.Add()
  21. #021              Itm.Text = Space(2) & Sheet1.Cells(r, 1)
  22. #022              For c = 1 To 6
  23. #023                  Itm.SubItems(c) = Format(Sheet1.Cells(r, c + 1), "##,#,0.00")
  24. #024              Next
  25. #025          Next
  26. #026      End With
  27. #027      Set Itm = Nothing
  28. #028      Set Img = Nothing
  29. #029  End Sub
复制代码
代码解析:
       用户窗体的Initialize事件过程,在窗体显示时将工作表中数据显示在Listview控件中并调整Listview控件的行距。
       第17行代码使用Add方法在ImageList控件中添加图片。ImageList控件是一个向其他控件提供图像的资料中心,它包含了一组ListImage对象即一组图像的集合,该集合中的每个对象都可以通过其索引或关键字被其他控件所引用,但控件本身并不能单独使用。
       在运行时给ImageList控件添加图片需要使用Add方法,语法如下:
Add(index,key,picture)
       参数index是可选的,整数,指定要插入的ListImage对象的位置。如果没有指定index,ListImage对象将被添加到ListImages集合的末尾。
       参数key是可选的,用来标识ListImage对象的唯一字符串。
       参数picture是必需的,指定欲添加到集合中的图片。
       也可以在设计时在ImageList控件中添加图片,这样就无需在文件夹中保留图片文件。在VBE中选择ImageList控件属性页中的“自定义”,在显示的“属性页”对话框中插入图片,如图所示。
Snap1.jpg
       第18行代码,指定Listview控件的SmallIcons属性为ImageList控件中的图片,使用图片来调整行距。
       运行窗体,Listview控件显示工作表中的内容,调整Listview控件的行距,如图所示。
Snap2.jpg

[ 本帖最后由 yuanzhuping 于 2009-4-30 16:40 编辑 ]

技巧131 使用Listview控件.rar

18.46 KB, 下载次数: 1095

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-25 04:51 , Processed in 0.044868 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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