除非注明,文章均为 战战如疯 原创,转载请保留链接: http://www./cat4/298.html,VBA交流群273624828。
昨天在我们在VBA窗体之ListView基本应用中讲到了怎样设置ListView控件的表头和输入数据的两种方法,今天我们继续来看怎样将选中的数据输出和改变字体颜色。我们先来看单行数据的输出
Private Sub CommandButton2_Click() Dim i For i = 1 To ListView1.ColumnHeaders.Count Cells(7, i) = ListView1.ColumnHeaders(i) '输出表头 If i = 1 Then Cells(8, i) = ListView1.SelectedItem.Text '第一列 Else Cells(8, i) = ListView1.SelectedItem.SubItems(i - 1) '其他列 End If Next End Sub
为了说明问题上面的代码我加了一个怎样输出表头的代码,平时用的话很少输出表头,SelectedItem表示被选中的那一行,自然第一列和其他列的表示方法还是分开的,不再多说了。
上面的代码是只选中一行的情况,那如果我选中了多行都需要输出怎么办,或者我要把整个ListView表格都输出怎么办?其实只要加一个判断该行是否选中的代码就可以了,选中的就输出,没选中的就不输出,输出全部的话连判断代码都免了。直接看循环判断部分代码
' For i = 1 To ListView1.ListItems.Count ' If ListView1.ListItems(i).Selected Then ' MsgBox i & "行已经选中" ' End If ' Next
上面的代码判断出哪行被选中,再对ListView.ListItems(i)进行操作即可。
下面再来看看怎么设置颜色和加粗,我们要将第1行变为红色且字体加粗
Private Sub CommandButton3_Click() Dim i, itm Set itm = ListView1.ListItems(1) itm.ForeColor = vbRed itm.Bold = True For i = 2 To ListView1.ColumnHeaders.Count itm.ListSubItems(i - 1).ForeColor = vbRed itm.ListSubItems(i - 1).Bold = True Next End Sub
同样的第一列和其他列要分开表示,这里我们用的是ListSubItems,上节我们说过这是一个对象,所以可以设置颜色等格式,如果用SubItems这个数组就不行了。示例文件下载地址:http://pan.baidu.com/s/1kTJZ0Yb。
|