У меня есть 2 отдельных листа, давайте назовем их листом A, листом B. У меня есть данные на листе B, который также находится на листе A. Я хочу найти одинаковые строки и удалить их из листа B.
Я не могу объединить 2 листа и использовать фильтры, потому что я делаю динамический SQL для запроса разных данных.
Каждый лист имеет уникальный ключевой столбец
Я согласен с предложениями VBA и формулами Excel.Пока я не комбинирую листы.
Большое спасибо, ребята!
Извините, по-видимому, я допустил ошибку.Здесь где-то есть бесконечный цикл.Это ответ Бена, кстати.Я только что оставил компилируемую версию.
Sub CleanDupes()
Dim wsA As Worksheet
Dim wsB As Worksheet
Dim keyColA As String
Dim keyColB As String
Dim rngA As Range
Dim rngB As Range
Dim intRowCounterA As Integer
Dim intRowCounterB As Integer
keyColA = "A"
keyColB = "A"
intRowCounterA = 1
intRowCounterB = 1
Set wsA = Worksheets("Sheet2")
Set wsB = Worksheets("Sheet1")
Do While Not IsEmpty(wsA.Range(keyColA & intRowCounterA).Value)
Set rngA = wsA.Range(keyColA & intRowCounterA)
intRowCounterB = 1
Do While Not IsEmpty(wsB.Range(keyColB & intRowCounterB).Value)
Set rngB = wsB.Range(keyColB & intRowCounterB)
If rngA.Value = rngB.Value Then
Rows(intRowCounterB).EntireRow.Delete
intRowCounterB = intRowCounterB - 1
End If
intRowCounterB = intRowCounterB + 1
Loop
intRowCounterA = intRowCounterA + 1
Loop
End Sub