Excel 高亮显示两列中的重复单元格

Excel 高亮显示两列中的重复单元格,excel,vba,Excel,Vba,我试着比较两列,突出显示在两列中找到的文本,如果A列包含任何数字不止一次,则只突出显示b列中的相同数字 例如,A列包含13、13、13,B列仅包含13次,因此在A列中仅突出显示13次,在B列中突出显示13次,您可以查看随附的图片以了解更多信息,非常感谢高级 Sub Duplicate() Dim myRange As Range Dim i As Integer Dim j As Integer Dim myCell As Range Set myRange = Range("A1:B100")

我试着比较两列,突出显示在两列中找到的文本,如果A列包含任何数字不止一次,则只突出显示b列中的相同数字 例如,A列包含13、13、13,B列仅包含13次,因此在A列中仅突出显示13次,在B列中突出显示13次,您可以查看随附的图片以了解更多信息,非常感谢高级

Sub Duplicate()
Dim myRange As Range
Dim i As Integer
Dim j As Integer
Dim myCell As Range
Set myRange = Range("A1:B100")
For Each myCell In myRange
If WorksheetFunction.CountIf(myRange, myCell.Value) > 1 Then
myCell.Interior.ColorIndex = 3
End If
Next
End Sub

我认为您的示例(12)中可能有几个错误

我相信你可以用CF来实现这一点,但我不想费心去尝试和解决它

Sub Duplicate()

Dim myRange As Range
Dim count1 As Long, count2 As Long, i As Long
Dim myCell As Range
Dim rFind1 As Range, rFind2 As Range

Set myRange = Range("A1:B11")

For Each myCell In myRange.Columns(1).Cells                              'loop through each cell in column A
    count1 = WorksheetFunction.CountIf(myRange.Columns(1), myCell.Value) 'number of times found in A
    count2 = WorksheetFunction.CountIf(myRange.Columns(2), myCell.Value) 'number of times found in B
    If count2 > 0 Then                                                   'only do something if found in B
        Set rFind1 = myRange.Cells(myRange.Rows.count, 1)                'initialize Find at last cell of A
        Set rFind2 = myRange.Cells(myRange.Rows.count, 2)                'initialize Find at last cell of B
        For i = 1 To WorksheetFunction.Min(count1, count2)               'loop number of times found (lower of the 2 values)
            With myRange
                Set rFind1 = .Columns(1).Find(What:=myCell.Value, After:=rFind1, Lookat:=xlWhole, SearchOrder:=xlByRows, _
                                              SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) 'find the cell
                Set rFind2 = .Columns(2).Find(What:=myCell.Value, After:=rFind2)                              'find the matching cell in B
                rFind1.Interior.ColorIndex = 3                           'shade A
                rFind2.Interior.ColorIndex = 3                           'shade B
            End With
        Next i
    End If
Next myCell

End Sub

我认为您的示例(12)中可能有几个错误

我相信你可以用CF来实现这一点,但我不想费心去尝试和解决它

Sub Duplicate()

Dim myRange As Range
Dim count1 As Long, count2 As Long, i As Long
Dim myCell As Range
Dim rFind1 As Range, rFind2 As Range

Set myRange = Range("A1:B11")

For Each myCell In myRange.Columns(1).Cells                              'loop through each cell in column A
    count1 = WorksheetFunction.CountIf(myRange.Columns(1), myCell.Value) 'number of times found in A
    count2 = WorksheetFunction.CountIf(myRange.Columns(2), myCell.Value) 'number of times found in B
    If count2 > 0 Then                                                   'only do something if found in B
        Set rFind1 = myRange.Cells(myRange.Rows.count, 1)                'initialize Find at last cell of A
        Set rFind2 = myRange.Cells(myRange.Rows.count, 2)                'initialize Find at last cell of B
        For i = 1 To WorksheetFunction.Min(count1, count2)               'loop number of times found (lower of the 2 values)
            With myRange
                Set rFind1 = .Columns(1).Find(What:=myCell.Value, After:=rFind1, Lookat:=xlWhole, SearchOrder:=xlByRows, _
                                              SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) 'find the cell
                Set rFind2 = .Columns(2).Find(What:=myCell.Value, After:=rFind2)                              'find the matching cell in B
                rFind1.Interior.ColorIndex = 3                           'shade A
                rFind2.Interior.ColorIndex = 3                           'shade B
            End With
        Next i
    End If
Next myCell

End Sub

编码失败的原因是,如果同时对A列和B列中的实例进行计数,为什么只有9和14未格式化,因为它们在A列和B列中只出现一次。请先尝试计算逻辑,然后编写代码。代码失败的原因是,如果同时对A列和B列中的实例进行计数,为什么只有9和14未格式化,因为它们在A列和B列中只出现一次。请尝试先计算出逻辑,然后编写代码。谢谢,先生,谢谢你的回答。我测试了你的代码,但现在问题是a列包含12,12,b列包含12,12,你只突出显示了12次代码,所以我想在两列中高亮显示它们,如果a列包含13,13,13和b 13,13,那么我想突出显示a列中的两个数字和bSo中的两个数字,这是在任一列中发现的次数下面的数字应该在两列中都加上阴影?我们已经重新调整了代码,所以请再试一次。是的,这非常有效。非常非常谢谢,先生,先生,谢谢你的回答。我测试了你的代码,但现在问题是a列包含12,12,b列包含12,12,你只突出显示了12次代码,所以我想在两列中高亮显示它们,如果a列包含13,13,13和b 13,13,那么我想突出显示a列中的两个数字和bSo中的两个数字,这是在任一列中发现的次数下面的数字应该在两列中都加上阴影?我们已经重新调整了代码,所以请再试一次。是的,这非常有效。非常感谢,先生