我的列表视图位于用户表单上。当我执行代码时,它会更改列表视图中所有条目的颜色。我希望它只更改当前条目。例如。;如果条目全是黑色(不是重复项),并且我添加了一个重复项并将前景色更改为蓝色,则所有前面的条目也会变成蓝色。这是我的代码:
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 设置前景色,但这根本没有改变颜色。
我使用主条目作为隐藏字段(宽度为 0)。我只能更改主要条目的颜色。当我重新调整字段时,我得到了我想要的结果。不知道为什么所有条目都发生了变化。