vba的附加控件中没有listview

vba的附加控件中没有listview,第1张

listview控件在php的使⽤⽅法,VBA窗体之ListView控件的基本

应⽤VBA实例教程

今天我们来看⼀下VBA窗体中的ListView控件的基本⽤法。ListView控件的最基本⽤法是在窗体中以表格形式显⽰数据,是应⽤⾮常⼴泛的⼀个窗体控件。控件⼯具箱在初始状态下是没有ListView控件的,需要我们在⼯具-附加控件中勾选"Microsoft ListView

Control,Version 6.0",这样ListView控件就会显⽰在控件⼯具箱中了。ListView分为表头和数据两部分,⽽数据部分的第⼀列和其他列⼜是分开的,需要⽤不同的⽅式来访问。假设我们在Sheet1中有⼀个5⾏4列的表格,现在我们看下怎样将这个表格中的数据导⼊到ListView控件中。

下⾯我们先来看怎样给ListView控件添加表头。有两种⽅法,先来看第⼀种

Private Sub UserForm_Initialize()

ListView1.ColumnHeaders.Add 1, "A", "姓名", ListView1.Width / 4, lvwColumnLeft '列数,key,text,宽度,对齐⽅式,图⽚

ListView1.ColumnHeaders.Add 2, "B", "性别", ListView1.Width / 4, lvwColumnCenter

ListView1.ColumnHeaders.Add 3, "C", "年龄", ListView1.Width / 4, lvwColumnCenter

ListView1.ColumnHeaders.Add 4, "D", "住址", ListView1.Width / 4, lvwColumnCenter

ListView1.View = lvwReport '显⽰⽅式

ListView1.FullRowSelect = False '是否整⾏选取

ListView1.Gridlines = True '是否显⽰表格线

End Sub

添加表头的第⼀种⽅法是⽤ColumnHeaders.Add的⽅法,该⽅法包括6个参数,⽐如上⾯第⼀⾏代码中1代表第⼀列,"A"是该列的⼀个简称(不写也可以),“姓名”是要显⽰的⽂字,下⼀个参数是宽度,这⾥我们⼀共4列,所以第⼀列宽度设为控件宽度(ListView1.Width)的

1/4,第5个参数是对齐⽅式,其中第⼀列必须是左对齐的,其他列可以设置左右或居中对齐,第6个参数是图标索引,我们后⾯再讲,这⾥其中所有的参数都是可省略的,⼀般写上显⽰的⽂字和宽度即可。ListView1.View是设置ListView控件的显⽰⽅式,⼀共四种,这⾥lvwReport是报表形式显⽰,其他的我们后⾯再讲。FullRowSelect是指可否整⾏选取,Gridlines是否显⽰⽹格线,这些属性⾃⼰试下就知道了。

当然我们也可以⽤循环的⽅式来简化代码

Private Sub UserForm_Initialize()

Dim i

For i = 1 To 4

ListView1.ColumnHeaders.Add i, , Cells(1, i), ListView1.Width / 4

Next

ListView1.FullRowSelect = True

ListView1.View = lvwReport

ListView1.Gridlines = True

End Sub

对列加了个For循环⽽已,其实是完全相同的。

下⾯我们来看怎样向ListView控件中添加数据。两种⽅法,下⾯来看第⼀种

Private Sub CommandButton1_Click()

Dim itm As ListItem, i, List, li

ListView1.ListItems.Clear '清除数据

For i = 2 To 5

Set itm = ListView1.ListItems.Add '添加⼀个空⾏

itm.Text = Cells(i, 1) '添加第⼀列

itm.SubItems(1) = Cells(i, 2) '添加第⼆列

itm.SubItems(2) = Cells(i, 3)

itm.SubItems(3) = Cells(i, 4)

Next

End Sub

当然添加新数据之前要把原有数据先删除,⽤的是ListItems的Clear⽅法ListItem对象就是控件的⾏。先⽤ListItems的Add⽅法添加⼀个空⾏,⽤变量itm来表⽰,下⾯就要向这个空⾏中添加数据,我们上⾯说过第⼀列和其他列的表⽰⽅法是不同的,第⼀列赋值要⽤Text,之后各列⽤SubItems数组来赋值,第2列序号是1,第3列序号是2,依次类推。

下⾯来看添加数据的另⼀种⽅法,ListSubItems对象

' For i = 2 To 5

' Set List = ListView1.ListItems.Add(Text:=Cells(i, 1))

' Set li = List.ListSubItems.Add(Text:=Cells(i, 2)) 'subitems是个数组,Listsubitems是个对象集合

' Set li = List.ListSubItems.Add(Text:=Cells(i, 3))

' Set li = List.ListSubItems.Add(Text:=Cells(i, 4))

' Next

前⾯都⼀样,我只把For循环这段贴出来了,同样是⽤ListItems.Add新建⼀个空⾏,不同的是直接给其赋了⼀个值,这个值就是赋在第⼀列的,之后⼜⽤List(刚添加的空⾏)的ListSubItems的Add⽅法,相当于在该⾏添加⼀个列,再赋值,有⼏列就添加⽤个ListSubItems。ListSubItems和SubItems的区别在于前者是⼀个对象集合,既然是对象就有可以设置格式(可以和⼯作表的Range对象类⽐),⽽后者仅仅是⼀个数组,因此也就不存在格式之类的属性了,所以如果需要给ListView控件改变格式就要⽤ListSubItems对象。

5.9

百度文库VIP限时优惠现在开通,立享6亿+VIP内容

立即获取

listview控件在php的使用方法,VBA窗体之ListView控件的基本应用VBA实例教程

listview控件在php的使⽤⽅法,VBA窗体之ListView控件的基本

应⽤VBA实例教程

今天我们来看⼀下VBA窗体中的ListView控件的基本⽤法。ListView控件的最基本⽤法是在窗体中以表格形式显⽰数据,是应⽤⾮常⼴泛的⼀个窗体控件。控件⼯具箱在初始状态下是没有ListView控件的,需要我们在⼯具-附加控件中勾选"Microsoft ListView

第 1 页

Control,Version 6.0",这样ListView控件就会显⽰在控件⼯具箱中了。ListView分为表头和数据两部分,⽽数据部分的第⼀列和其他列⼜是分开的,需要⽤不同的⽅式来访问。假设我们在Sheet1中有⼀个5⾏4列的表格,现在我们看下怎样将这个表格中的数据导⼊到ListView控件中。

下⾯我们先来看怎样给ListView控件添加表头。有两种⽅法,先来看第⼀种

第 2 页

Private Sub UserForm_Initialize()

ListView1.ColumnHeaders.Add 1, "A", "姓名", ListView1.Width / 4, lvwColumnLeft '列数,key,text,宽度,对齐⽅式,图⽚

ListView1.ColumnHeaders.Add 2, "B", "性别", ListView1.Width / 4, lvwColumnCenter

ListView1.ColumnHeaders.Add 3, "C", "年龄", ListView1.Width / 4, lvwColumnCenter

第 3 页

ListView1.ColumnHeaders.Add 4, "D", "住址", ListView1.Width / 4, lvwColumnCenter

ListView1.View = lvwReport '显⽰⽅式

ListView1.FullRowSelect = False '是否整⾏选取

ListView1.Gridlines = True '是否显⽰表格线

第 4 页

End Sub

添加表头的第⼀种⽅法是⽤ColumnHeaders.Add的⽅法,该⽅法包括6个参数,⽐如上⾯第⼀⾏代码中1代表第⼀列,"A"是该列的⼀个简称(不写也可以),“姓名”是要显⽰的⽂字,下⼀个参数是宽度,这⾥我们⼀共4列,所以第⼀列宽度设为控件宽度(ListView1.Width)的

第 5 页

1/4,第5个参数是对齐⽅式,其中第⼀列必须是左对齐的,其他列可以设置左右或居中对齐,第6个参数是图标索引,我们后⾯再讲,这⾥其中所有的参数都是可省略的,⼀般写上显⽰的⽂字和宽度即可。ListView1.View是设置ListView控件的显⽰⽅式,⼀共四种,这⾥lvwReport是报表形式显⽰,其他的我们后⾯再讲。FullRowSelect是指可否整⾏选取,Gridlines是否显⽰⽹格线,这些属性⾃⼰试下就知道了。

第 6 页

当然我们也可以⽤循环的⽅式来简化代码

Private Sub UserForm_Initialize()

Dim i

For i = 1 To 4

ListView1.ColumnHeaders.Add i, , Cells(1, i), ListView1.Width / 4

Next

第 7 页

ListView1.FullRowSelect = True

ListView1.View = lvwReport

ListView1.Gridlines = True

End Sub

对列加了个For循环⽽已,其实是完全相同的。

下⾯我们来看怎样向ListView控件中添加数据。两种⽅法,下⾯来看第⼀种

第 8 页

Private Sub CommandButton1_Click()

Dim itm As ListItem, i, List, li

ListView1.ListItems.Clear '清除数据

For i = 2 To 5

Set itm = ListView1.ListItems.Add '添加⼀个空⾏

itm.Text = Cells(i, 1) '添加第⼀列

第 9 页

itm.SubItems(1) = Cells(i, 2) '添加第⼆列

itm.SubItems(2) = Cells(i, 3)

itm.SubItems(3) = Cells(i, 4)

Next

End Sub

当然添加新数据之前要把原有数据先删除,⽤的是ListItems的Clear⽅法ListItem对象就是控件的⾏。先⽤ListItems的Add⽅法添加⼀个空⾏,⽤变量itm来表⽰,下⾯就要向这个空⾏中添加数据,我们上⾯说过第⼀列和其他列的表⽰⽅法是不同的,第⼀列赋值要⽤Text,之后各列⽤SubItems数组来赋值,第2列序号是1,第3列序号是2,依次类推。

第 10 页

下⾯来看添加数据的另⼀种⽅法,ListSubItems对象

' For i = 2 To 5

' Set List = ListView1.ListItems.Add(Text:=Cells(i, 1))

' Set li = List.ListSubItems.Add(Text:=Cells(i, 2)) 'subitems是个数组,Listsubitems是个对象集合

第 11 页

' Set li = List.ListSubItems.Add(Text:=Cells(i, 3))

' Set li = List.ListSubItems.Add(Text:=Cells(i, 4))

' Next

前⾯都⼀样,我只把For循环这段贴出来了,同样是⽤ListItems.Add新建⼀个空⾏,不同的是直接给其赋了⼀个值,这个值就是赋在第⼀列的,之后⼜⽤List(刚添加的空⾏)的ListSubItems的Add⽅法,相当于在该⾏添加⼀个列,再赋值,有⼏列就添加⽤个ListSubItems。ListSubItems和SubItems的区别在于前者是⼀个对象集合,既然是对象就有可以设置格式(可以和⼯作表的Range对象类⽐),⽽后者仅仅是⼀个数组,因此也就不存在格式之类的属性了,所以如果需要给ListView控件改变格式就要⽤ListSubItems对象。

可以使用ScrollBars属性来添加滚动条,可设置的可选属性有:none、horizontal、vertical、both。如果想要添加横向和纵向滚动条,可以使用下面的语句:

ListView1.ScrollBars = fmScrollBarsBoth

Private Sub CommandButton1_Click()

    ListView1.ColumnHeaders.Add , , "序号", 40

    ListView1.ColumnHeaders.Add , , "替换", 80

    ListView1.ColumnHeaders.Add , , "替换为", 80

    ListView1.ColumnHeaders.Add , , "带格式文本", 80

    ListView1.View = lvwReport

    ListView1.FullRowSelect = True

    ListView1.Gridlines = True

    

     Dim x As Integer

     Dim TotalACEntries As Integer

     TotalACEntries = Application.AutoCorrect.Entries.Count '取得项目数

     For x = 1 To TotalACEntries

     

        ListView1.ListItems.Add , , x

    

        ListView1.ListItems(x).SubItems(1) = Application.AutoCorrect.Entries.Item(x).Name

        ListView1.ListItems(x).SubItems(2) = Application.AutoCorrect.Entries.Item(x).Value

        ListView1.ListItems(x).SubItems(3) = Application.AutoCorrect.Entries.Item(x).RichText

    

     Next

End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11265986.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存