Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据excel vba的值更改Listview中的前景色_Excel_Vba - Fatal编程技术网

根据excel vba的值更改Listview中的前景色

根据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

希望你能帮助我。。。我的listview上显示了一个数据。列标题为:

行ID客户取货交付装货地点行李数量状态-共10列

我希望我的列中的前景色状态取决于该值。该值为已付未付,如果已付则颜色应为绿色,如果未付,则颜色应为红色

我有这个密码,但它不适合我,有人会帮我吗?先谢谢你

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