VBA中的条件格式

时间:2016-03-16 20:25:22

标签: excel excel-vba vba

我想通过让重复的单元格变为红色来管理Excel工作表上的重复项。我将其用于表单保护,以防止编辑这些列的条件格式。但是,当我移动单元格信息(通过单击并拖动)时,条件格式也会从该单元格移动。在一天结束时,我没有对我想要的每个单元格进行重复覆盖。当我移动单元格时,有什么方法可以防止这种情况发生,或者我可以放入什么宏来处理这个问题?

我想使用VBA做这样的事情:

Sub Duplicate()
Dim rngData As Range
Dim cell As Range

Set rngData = Range("P3:P19, P56:P58, P39:P42, P21:P25, P27:P37, P39:P42, P39:P42, P44:P54, M25:M76, B69:B77, B66:E67, B51:B64, H44:H47, D44:D47, H42, H33:H40, D33:D42, H31, D28:D31, H28:H29, D5:D8" & Cells(Rows.Count, "B").End(xlUp).Row)
For Each cell In rngData
cell.Offset(0, 0).Font.Color = vbBlack          ' DEFAULT COLOR
' LOCATE DUPLICATE VALUE(S) IN THE SPECIFIED RANGE OF DATA.
        If Application.Evaluate("COUNTIF(" & rngData.Address & "," & cell.Address & ")") > 1 Then
            cell.Offset(0, 0).Font.Color = vbRed        ' CHANGE FONT COLOR TO RED.
        End If
    Next cell

    Set rngData = Nothing

    Application.ScreenUpdating = True
End Sub

但是我收到了“类型不匹配”错误: 如果Application.Evaluate(“COUNTIF(”& rngData.Address&“,”& cell.Address&“)”)> 1然后

我怎样才能解决这个问题?

1 个答案:

答案 0 :(得分:1)

根据评论,您需要循环两次:

\G