Повторяющиеся значения - VBA (48724)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Нужна Ваша помощь. Имеется файл, на двух разных листах содержатся записи и надо найти повторяющиеся элементы, выставить пометки да/нет. Да, если запись повторяется, нет, если запись не повторяется. В файле повторяющиеся элементы 3 и 5 записи, а пометки выставляются для всех как нет.
Пример_1.xlsx

Решение задачи: «Повторяющиеся значения»

textual
Листинг программы
Sub CompareRows()
Dim S1 As String, S2 As String, Iz1 As Integer, Iz2 As Integer
Dim LastRow As Long, I As Long, J As Integer, TF As Boolean
Sheets(1).Activate
LastRow = ActiveSheet.UsedRange.Row + _
          ActiveSheet.UsedRange.Rows.Count - 1
For I = 1 To LastRow
  If Cells(I, 1) <> "" Then 'пропускаем пустые строки
    TF = True
    For J = 1 To 4
      S1 = Trim(Cells(I, J)): S2 = Trim(Sheets(2).Cells(I, J))
      Iz1 = InStr(S1, "*"): Iz2 = InStr(S2, "*")
      If Iz1 + Iz2 = 0 Then 'нет звёзд
        If S1 <> S2 Then
          TF = False: Exit For
        End If
      Else
        If Iz1 = 0 Or (Iz2 > 0 And Iz2 < Iz1) Then Iz1 = Iz2
        Iz1 = Iz1 - 1
        If Iz1 > 0 Then 'есть текст + звезда
          If Left(S1, Iz1) <> Left(S2, Iz1) Then
            TF = False: Exit For
          End If
        End If
      End If
    Next
    Cells(I, 6) = IIf(TF, "Да", "Нет")
  End If
Next
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.571 из 5
Похожие ответы