摘要:第6行到第12行代码,使用ColumnHeader对象的Add方法在Listview控件中添加标题列,并设置列标题、列宽和文本对齐方式。ListItem对象的text属性代表Listview控件的第一列内容,因为Listview控件的第一列的文本对齐方式只能设置为左对齐,所以在添加时使用Space函数插入两个空格,使行标题达到居中显示的效果。

大家好,我们今日继续讲解VBA代码解决方案的第103讲内容:VBA中使用类似于工作表的Listview控件来显示你的任务。ListView控件是VBA程序开发中的常用控件,可以用来显示各项带图标的列表,也可以用来显示带有子项的列表。Listview控件是微软通用控件MSCOMCTL.OCX中的一员,因其美观、易用,是VBA使用者最常用的控件之一。

Listview控件的应用随处可见,比如你的计算机系统中使用的资源管理器,就是Treeview和Listview做出来的,资源管理器的左边是Treeview控件,右边是Listview。Listview有4种视图,Win7系统的资源管理器有7种显示方式,XP有5种,其中大图标对应Listview的lvwIcon,小图标对应lvwSmallIcon,列表对应lvwList,详细信息则对应lvwReport。

一:Listview控件的View属性,这个属性决定在列表中控件使用何种视图显示项目,语法如下:object.view [= value]

参数object是必须的,对象表达式,listview控件。

参数value是必须的,指定控件外观的整数或常数:

lvwicon 0图标

lvwsmallicon 1小图标

lvwlist 2 列表

lvwreport 3 报表

二 ColumnHeader对象。是ListView控件中包含标题文字的项目。应用于ColumnHeader对象的Add方法语法如下:

object.ColumnHeader.Add(index,key,text,width,alignment)

其中参数text代表标题文字,参数width代表标题的列宽,参数alignment代表列标题中文本对齐方式。Listview控件中文本的对齐方法有三种,

lvwColumnLeft0文本向左对齐。(缺省值)

lvwColumnRight1文本向右对齐。

lvwColumnCenter2文本居中对齐。

在Listview控件中第一列的文本对齐方式只能设置为左对齐。

三 ListItem对象。是ListView控件的项目,应用于ListItem对象的Add方法语法如下:

ListItems.Add(index,key,text,icon,smallIcon)

其中参数text代表添加的项目内容。

四实测实例:使用Listview控件在用户窗体中显示数据列表,我们先建立一个窗体:

工作表任务在自定义窗体上的重现,VBA中Listview控件的独到之处

代码如下:

Private Sub UserForm_Initialize()

Dim Itm As ListItem

Dim r As Integer

Dim c As Integer

With ListView1

.ColumnHeaders.Add , , "名称", 50, 0

.ColumnHeaders.Add , , "库位1", 50, 1

.ColumnHeaders.Add , , "库位2", 50, 1

.ColumnHeaders.Add , , "库位3", 50, 1

.ColumnHeaders.Add , , "库位4", 50, 1

.ColumnHeaders.Add , , "库位5", 50, 1

.ColumnHeaders.Add , , "库位6", 50, 1

.View = lvwReport

.Gridlines = True

For r = 2 To Sheet1.[A65536].End(xlUp).Row

Set Itm = .ListItems.Add()

Itm.Text = Space(2) & Sheet1.Cells(r, 1)

For c = 1 To 6

Itm.SubItems(c) = Format(Sheet1.Cells(r, c + 1), "##,#,0.0")

Next

Next

End With

Set Itm = Nothing

End Sub

代码截图:

工作表任务在自定义窗体上的重现,VBA中Listview控件的独到之处

代码解析:窗体的初始化事件,在窗体显示时将工作表中数据显示在Listview控件中。

第6行到第12行代码,使用ColumnHeader对象的Add方法在Listview控件中添加标题列,并设置列标题、列宽和文本对齐方式。

第13行代码,设置Listview控件的View属性为lvwReport,使Listview控件显示为报表型。

第14行代码,设置Listview控件的Gridlines属性为True,显示网格线。只有在将View属性设置为lvwReport时才能显示网格线,否则Gridlines属性无效。

第16行代码,使用ListItem对象的Add方法在Listview控件中添加项目。

第17行代码,添加行标题。ListItem对象的text属性代表Listview控件的第一列内容,因为Listview控件的第一列的文本对齐方式只能设置为左对齐,所以在添加时使用Space函数插入两个空格,使行标题达到居中显示的效果。

第18行到20行代码,继续添加其他列的内容。Listview控件其他列的项目需要使用SubItems属性来添加。

运行后如下图:

工作表任务在自定义窗体上的重现,VBA中Listview控件的独到之处

这时就可以看到EXCEL中的资料显示在台账体统的界面了。

今日内容回向:

1 如何让工作表数据显示在控件中?

1 ListView控件是如何显示数据的?

相关文章