Привет. Есть 2 листа. на 1 листе есть таблица со значениями, которые нужно почистить. На втором листе есть таблица со значениями, которые нужно искать в таблице на первом листе и удалять строку, если совпадение. Нужно искать частичное совпадение, т.к. на втором листе часть строки из первого листа. Имеется макрос, но он не делает ничего, просто проходит циклы, но не удаляет строки. Не могу понять в чем проблема. Файл прикреплен.
Option Compare Text Sub test() Dim lastrowto As Long Dim e As Long Dim a As Long Dim lastrowdel As Long Set result = Workbooks("result CF.xlsm").Worksheets("result") Set result1 = Workbooks("result CF.xlsm").Worksheets("лист1") With result.Range("result") lastrowto = result.Cells(1, 5).End(xlDown).Row lastrowdel = result1.Cells(1, 8 ).End(xlDown).Row For e = lastrowto To 1 Step -1 For a = 1 To lastrowdel If result.Cells(e, 7).Value Like result1.Cells(a, 8 ).Value Then result.Cells(e, 7).EntireRow.Delete Exit For Next a Next e End With End Sub
В отладке пробовали пройтись? Когда оно у Вас выходит? Найдите разницу
Код
Option Compare Text
Sub test()
Dim lastrowto As Long, e As Long, a As Long, lastrowdel As Long
Set result = Worksheets("result")
Set result1 = Worksheets("лист1")
lastrowto = result.Cells(1, 5).End(xlDown).Row
lastrowdel = result1.Cells(1, 8).End(xlDown).Row
For e = lastrowto To 1 Step -1
For a = 1 To lastrowdel
If result.Cells(e, 7).Value Like result1.Cells(a, 8).Value Then
result.Cells(e, 7).EntireRow.Delete
Exit For
End If
Next a
Next e
End Sub