Vba Excel:如何根据范围内具有相同值的其他单元格的颜色为单元格着色?

Vba Excel:如何根据范围内具有相同值的其他单元格的颜色为单元格着色?,vba,excel,validation,conditional-formatting,Vba,Excel,Validation,Conditional Formatting,我有一个从10行到3列的范围/表格 任何特定单元格都可以具有使用数据验证创建的列表中的任何特定值。此范围内的所有单元格都具有相同的数据验证列表 如果某个值在任何行或列上重复,而不是以对角线或其他方式重复,则使用条件格式突出显示这些值 现在我想知道,如果在非重复行或列的其他地方存在相同的值,那么这些单元格也应该着色。最好使用与条件格式不同的颜色,以了解两者之间的差异 目的是了解哪些值重复以及如何重复,以及在范围内使用这些值但不按照标准重复的位置 备注:请告知是否需要补充信息或澄清 请参阅所附图片,

我有一个从10行到3列的范围/表格

任何特定单元格都可以具有使用数据验证创建的列表中的任何特定值。此范围内的所有单元格都具有相同的数据验证列表

如果某个值在任何行或列上重复,而不是以对角线或其他方式重复,则使用条件格式突出显示这些值

现在我想知道,如果在非重复行或列的其他地方存在相同的值,那么这些单元格也应该着色。最好使用与条件格式不同的颜色,以了解两者之间的差异

目的是了解哪些值重复以及如何重复,以及在范围内使用这些值但不按照标准重复的位置

备注:请告知是否需要补充信息或澄清

请参阅所附图片,以便更好地理解我的查询。 蓝色的通过条件格式着色,绿色的通过帮助着色


您可以对整个范围使用条件格式->复制值,使用不同的颜色,并在条件格式->管理规则中设置序列。我认为不需要VBA

编辑: 好吧,我想我知道你要什么了。试试这个小子程序:

Sub PaintDuplis()
Dim rng As Range
Dim col As Range
Dim row As Range
Dim cl As Range, cl2 As Range

Set rng = Range("B4:D11") 'or whatever your range is.
'Columns
For Each col In rng.Columns
  For Each cl In col.Cells
    If WorksheetFunction.CountIf(col, cl.Value) > 1 Then cl.Interior.Color =    vbYellow
  Next cl
Next col

'Rows
For Each row In rng.rows
  For Each cl In row.Cells
    If WorksheetFunction.CountIf(row, cl.Value) > 1 Then cl.Interior.Color = vbYellow
  Next cl
Next row

'Paint whole range
For Each cl In rng
  If cl.Interior.Color = vbYellow Then
    For Each cl2 In rng
        If cl2.Value = cl.Value And cl2.Interior.Color <> vbYellow Then cl2.Interior.Color = vbRed
    Next cl2
  End If
Next cl

我放弃了条件格式,而是使用VBA在列/行中绘制重复项,然后在所有静止的白色单元格上绘制红色,如果它等于已经是黄色的单元格。希望有帮助

不,实际上,不需要突出显示整个范围的副本。整个范围将有重复项,因为每个列将有相同的数据集。只有当数据在一行或一列中重复时,才需要颜色高亮显示。因此,您需要为每列和每行分别设置条件格式。。如果有大量行,可以使用宏逐个格式化。否。我已经为每一行和每一列分别设置了条件格式。现在我需要的是高亮显示区域中的单元格,这些单元格的值与被条件格式标记为重复的单元格的值相同,而不是那些被标记为重复的单元格。因此,您只需要高亮显示两个或多个重复值中的一个,而不是全部-这是否正确?否。假设第1列在第3行和第8行中有重复的值。因此,将使用条件格式规则突出显示单元格3,1和8,1。现在,在第4、2和7、3单元中也观察到重复值,例如X.X。我还需要突出显示这些单元格。但类似地,在整个范围内,值Z出现在单元格1、1、5、2和10、3中。因此,这在任何行或列中都不会重复。因此,这些不应着色,尽管它们在整个范围内都是重复的。