VBA сравнить несколько ячеек на нескольких листах - PullRequest
0 голосов
/ 19 мая 2018

Мне нужна помощь в сравнении нескольких ячеек на нескольких листах и ​​удалении дубликатов.Если столбцы A и B на листе 1 соответствуют столбцам A и B на листе 2, мне нужно удалить эту строку.

Пожалуйста, помогите.

Образец

В приведенном выше примере мне нужно удалить строку 2 и строку 4 из листа 2.

1 Ответ

0 голосов
/ 20 июня 2018

Попробуйте это.

Sub DeleteDuplicatesOnSheets()

   Dim Ws As Worksheet
   Dim Cl As Range
   Dim ValU As String
   Dim Qty As Long
   Dim Rng As Range

   For Each Ws In Worksheets

   On Error Resume Next

      With CreateObject("scripting.dictionary")
         For Each Cl In Ws.Range("C2", Ws.Range("C" & Rows.Count).End(xlUp))
            ValU = Join(Application.Transpose(Application.Transpose(Cl.Resize(, 4))))
            If Not .exists(ValU) Then
               .Add ValU, Nothing
            Else
               Qty = Qty + 1
               If Rng Is Nothing Then
                  Set Rng = Cl
               Else
                  Set Rng = Union(Rng, Cl)
               End If
            End If
         Next Cl
         If Not Rng Is Nothing Then Rng.EntireRow.Delete
         .RemoveAll
      End With
   Next Ws
   MsgBox Qty & " rows have been deleted"

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