根据excel vba的值更改Listview中的前景色
希望你能帮助我。。。我的listview上显示了一个数据。列标题为: 行ID客户取货交付装货地点行李数量状态-共10列 我希望我的列中的前景色状态取决于该值。该值为已付或未付,如果已付则颜色应为绿色,如果未付,则颜色应为红色 我有这个密码,但它不适合我,有人会帮我吗?先谢谢你根据excel vba的值更改Listview中的前景色,excel,vba,Excel,Vba,希望你能帮助我。。。我的listview上显示了一个数据。列标题为: 行ID客户取货交付装货地点行李数量状态-共10列 我希望我的列中的前景色状态取决于该值。该值为已付或未付,如果已付则颜色应为绿色,如果未付,则颜色应为红色 我有这个密码,但它不适合我,有人会帮我吗?先谢谢你 Private Sub UserForm_Activate() Dim C As Long Dim i As Long Dim R As Long ListView1.View = lvwReport ListView
Private Sub UserForm_Activate()
Dim C As Long
Dim i As Long
Dim R As Long
ListView1.View = lvwReport
ListView1.HideSelection = False
ListView1.FullRowSelect = True
ListView1.HotTracking = True
ListView1.HoverSelection = False
ListView1.ColumnHeaders.Add Text:="Row", Width:=40
For C = 1 To 12
ListView1.ColumnHeaders.Add Text:=Cells(1, C).Text
ComboBox1.AddItem Cells(1, C).Text
Next C
**' |In this part of my code is not working|**
Dim Item As ListItem
Dim counter As Long
For counter = 1 To listView1.ListItems.Count
Set Item = listView1.ListItems.Item(counter)
If Item.SubItems(10) = "Paid" Then
listView1.ListItems.Item(counter).ListSubItems(10).ForeColor = vbGreen
End If
If Item.SubItems(10) = "Unpaid" Then
listView1.ListItems.Item(counter).ListSubItems(10).ForeColor = VBRed
Next counter
End Sub
listsubitime必须为9,因为索引号从0开始。 在我的测试中,它工作得很好
不是10岁,而是9岁。Item.SubItems(10)~~~~>Item.SubItems(9)@Dy.Lee我已经试过了,但仍然不起作用谢谢你的帮助!。非常感谢!
Private Sub UserForm_Activate()
Dim C As Long
Dim i As Long
Dim R As Long
Dim li As ListItem
ListView1.View = lvwReport
ListView1.HideSelection = False
ListView1.FullRowSelect = True
ListView1.HotTracking = True
ListView1.HoverSelection = False
ListView1.ColumnHeaders.Add Text:="Row", Width:=40
For C = 1 To 12
ListView1.ColumnHeaders.Add Text:=Cells(1, C).Text
ComboBox1.AddItem Cells(1, C).Text
Next C
Dim vDB
vDB = Range("a1").CurrentRegion
For i = 2 To UBound(vDB, 1)
Set li = ListView1.ListItems.Add
For j = 1 To UBound(vDB, 2)
With li
.Text = i
.ListSubItems.Add , , vDB(i, j)
End With
Next j
Next i
'**' |In this part of my code is not working|**
Dim Item As ListItem
Dim counter As Long
For counter = 1 To ListView1.ListItems.Count
Set Item = ListView1.ListItems.Item(counter)
If Item.SubItems(9) = "Paid" Then
ListView1.ListItems.Item(counter).ListSubItems(9).ForeColor = vbGreen
End If
If Item.SubItems(9) = "Unpaid" Then
ListView1.ListItems.Item(counter).ListSubItems(9).ForeColor = vbRed
End If
Next counter
End Sub