сравнение строк в Excel - PullRequest
0 голосов
/ 04 мая 2020

Требование - сравнить две строки, если найдена повторяющаяся строка, отобразить всплывающее окно «повторяющиеся строки» и не перейти к следующей ячейке ... этот код не работает, так как он сравнивает столбец.

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim lastRow As Long, j As Long
 If Not Intersect(Target, Columns("G:L")) Is Nothing Then
   If Target.Value <> "" Then
        lastRow = Cells(Rows.Count, Target.Column).End(xlUp).Row
        For j = 1 To lastRow
            If Cells(j, Target.Column).Value = Target.Value And j <> Target.Row Then
                MsgBox "row having same value"
                Target.Clear: Target.Select
                Exit For
            End If
        Next j
   End If
 End If
End Sub

1 Ответ

0 голосов
/ 04 мая 2020

Вам не нужно l oop. Вы можете использовать функцию Excel CountIf

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.CountLarge > 1 Then Exit Sub
    If Not Intersect(Target, Columns("G:L")) Is Nothing Then
        If Target.Value <> "" Then
            If Application.WorksheetFunction.CountIf(Columns(Target.Column), Target.Value) > 1 Then
                MsgBox "Row Having Same Value"
                Application.EnableEvents = False
                    Target.ClearContents: Target.Select
                Application.EnableEvents = True
            End If
        End If
    End If
End Sub

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...