Vba 根据列值以不同颜色高亮显示重复项
请您建议我如何以相同的方式突出显示重复项,但以列值为基础 例如:Vba 根据列值以不同颜色高亮显示重复项,vba,excel,Vba,Excel,请您建议我如何以相同的方式突出显示重复项,但以列值为基础 例如: 列A1的值为“ID”,B1的值为“Name”,C1的值为“Title” 如果列x1仅是ID或名称,我想突出显示DUP。(“x”可以是活动工作表中的任何列) 我不知道如何进一步进行,因为我是VBA的初学者 如果将代码附加到上一个代码,也可以 如果您为我这样做,我将非常感谢您。如果我知道您希望在工作表中突出显示重复项 请尝试以下代码,它将在向列添加重复值时高亮显示 Option Explicit Private Sub Workshe
列A1的值为“ID”,B1的值为“Name”,C1的值为“Title” 如果列x1仅是ID或名称,我想突出显示DUP。(“x”可以是活动工作表中的任何列) 我不知道如何进一步进行,因为我是VBA的初学者 如果将代码附加到上一个代码,也可以
如果您为我这样做,我将非常感谢您。如果我知道您希望在工作表中突出显示重复项 请尝试以下代码,它将在向列添加重复值时高亮显示
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xlRng As Range
Dim xlCel As Range
Dim xlCol As Range
Dim C As Range
Dim XlStri As String
'// Duplicates will be highlighted in red
Target.Interior.ColorIndex = xlNone
For Each xlCol In Target.Columns
Set xlRng = Range(Cells(1, xlCol.Column), Cells(Rows.Count, xlCol.Column).End(xlUp))
Debug.Print xlRng.Address
For Each xlCel In xlCol
If WorksheetFunction.CountIf(xlRng, xlCel.Value) > 1 Then
Set C = xlRng.Find(What:=xlCel.Value, LookIn:=xlValues)
If Not C Is Nothing Then
XlStri = C.Address
Do
C.Interior.ColorIndex = 3
Set C = xlRng.FindNext(C)
Loop While Not C Is Nothing And C.Address <> XlStri
End If
End If
Next
Next xlCol
End Sub
选项显式
私有子工作表_更改(ByVal目标作为范围)
Dim xlRng As范围
Dim xlCel As系列
Dim xlCol As范围
调光范围
作为字符串的Dim XlStri
“//重复项将以红色突出显示
Target.Interior.ColorIndex=xlNone
对于Target.Columns中的每个xlCol
设置xlRng=范围(单元格(1,xlCol.Column),单元格(Rows.Count,xlCol.Column).End(xlUp))
调试.打印xlRng.地址
对于xlCol中的每个xlCel
如果工作表function.CountIf(xlRng,xlCel.Value)>1,则
设置C=xlRng.Find(What:=xlCel.Value,LookIn:=xlValues)
如果不是,那么C什么都不是
XlStri=C.地址
做
C.Interior.ColorIndex=3
设置C=xlRng.FindNext(C)
循环而不是C为Nothing,C为地址XlStri
如果结束
如果结束
下一个
下一个xlCol
端接头
要使用上述代码,需要将其放入工作表的“工作表更改”事件中
- 转到要更改的工作表
- 转到工作表名称出现的底部(例如“Sheet1”)
- 右键单击并选择“查看代码” 希望这有帮助