|
楼主 |
发表于 2009-4-29 11:16
|
显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
第8部分 控件与用户窗体
技巧131 使用Listview控件
ListView控件是VBA程序开发中的常用控件,可以在用户窗体中把工作表的数据以列表的方式显示。
131-1 使用Listview控件显示数据列表
使用Listview控件在用户窗体中显示数据列表,代码如下:- #001 Private Sub UserForm_Initialize()
- #002 Dim Itm As ListItem
- #003 Dim r As Integer
- #004 Dim c As Integer
- #005 With ListView1
- #006 .ColumnHeaders.Add , , "人员编号 ", 50, 0
- #007 .ColumnHeaders.Add , , "技能工资 ", 50, 1
- #008 .ColumnHeaders.Add , , "岗位工资 ", 50, 1
- #009 .ColumnHeaders.Add , , "工龄工资 ", 50, 1
- #010 .ColumnHeaders.Add , , "浮动工资 ", 50, 1
- #011 .ColumnHeaders.Add , , "其他 ", 50, 1
- #012 .ColumnHeaders.Add , , "应发合计", 50, 1
- #013 .View = lvwReport
- #014 .Gridlines = True
- #015 For r = 2 To Sheet1.[A65536].End(xlUp).Row
- #016 Set Itm = .ListItems.Add()
- #017 Itm.Text = Space(2) & Sheet1.Cells(r, 1)
- #018 For c = 1 To 6
- #019 Itm.SubItems(c) = Format(Sheet1.Cells(r, c + 1), "##,#,0.00")
- #020 Next
- #021 Next
- #022 End With
- #023 Set Itm = Nothing
- #024 End Sub
复制代码 代码解析:
窗体的初始化事件,在窗体显示时将工作表中数据显示在Listview控件中。
第6行到第12行代码,使用ColumnHeader对象的Add方法在Listview控件中添加标题列,并设置列标题、列宽和文本对齐方式。
ColumnHeader对象是ListView控件中包含标题文字的项目,应用于ColumnHeader对象的Add方法语法如下:
object.ColumnHeader.Add(index,key,text,width,alignment)
其中参数text代表标题文字,参数width代表标题的列宽,参数alignment代表列标题中文本对齐方式。Listview控件中文本的对齐方法有三种,如表格所示。
在Listview控件中第一列的文本对齐方式只能设置为左对齐。
第13行代码,设置Listview控件的View属性为lvwReport,使Listview控件显示为报表型。View属性决定在列表中控件使用何种视图显示项目,语法如下:
object.view [= value]
参数object是必需的,对象表达式,listview控件。
参数value是必需的,指定控件外观的整数或常数,如表格所示。
第14行代码,设置Listview控件的Gridlines属性为True,显示网格线。只有在将View属性设置为lvwReport时才能显示网格线,否则Gridlines属性无效。
第16行代码,使用ListItem对象的Add方法在Listview控件中添加项目。应用于ListItem对象的Add方法语法如下:
ListItems.Add(index,key,text,icon,smallIcon)
其中参数text代表添加的项目内容。
第17行代码,添加行标题。ListItem对象的text属性代表Listview控件的第一列内容,因为Listview控件的第一列的文本对齐方式只能设置为左对齐,所以在添加时使用Space函数插入两个空格,使行标题达到居中显示的效果。
第18行到20行代码,继续添加其他列的内容。Listview控件其他列的项目需要使用SubItems属性来添加。
运行窗体,Listview控件显示工作表中的内容,如图所示。
|
|