我想更改列表视图条目的颜色以显示它是工作表中已有值的重复

问题描述 投票:0回答:1

我的列表视图位于用户表单上。当我执行代码时,它会更改列表视图中所有条目的颜色。我希望它只更改当前条目。例如。;如果条目全是黑色(不是重复项),并且我添加了一个重复项并将前景色更改为蓝色,则所有前面的条目也会变成蓝色。这是我的代码:

Private Sub addtolv()
    Dim dupe As Boolean
    Dim li As ListItem
    ' note: RecordNumber writecolumn and LASTROW are globals
    dupe = False
    With ListView1
        ' check if already in columnm
        If Application.WorksheetFunction.CountIf(Range(ThisWorkbook.writecolumn & "2:" & ThisWorkbook.writecolumn & CStr(LASTROW)), Range("B" & RecordNumber)) = 0 
Then
            .ForeColor = vbBlack
        Else
            dupe = True
                .ForeColor = vbBlue
        End If
        Set li = .ListItems.Add(, Worksheets("Sheet2").Range("B" & 
RecordNumber), Worksheets("Sheet2").Range("A" & RecordNumber), 0)
        li.SubItems(1) = Worksheets("Sheet2").Range("B" & RecordNumber)
        li.SubItems(2) = Worksheets("Sheet2").Range("C" & RecordNumber)
        li.SubItems(3) = Worksheets("Sheet2").Range("D" & RecordNumber)
        li.SubItems(4) = Worksheets("Sheet2").Range("E" & RecordNumber)
        li.SubItems(5) = RecordNumber
    End With
End Sub

设置 li 后,我尝试使用 li.ForeColor 设置前景色,但这根本没有改变颜色。

vba listview
1个回答
0
投票

我使用主条目作为隐藏字段(宽度为 0)。我只能更改主要条目的颜色。当我重新调整字段时,我得到了我想要的结果。不知道为什么所有条目都发生了变化。

© www.soinside.com 2019 - 2024. All rights reserved.