Здравствуйте. Прошу помощи в доработке макроса: [vba]
Код
Sub Del_Array_SubStr() Dim sSubStr As String 'èñêîìîå ñëîâî èëè ôðàçà Dim lCol As Long 'íîìåð ñòîëáöà ñ ïðîñìàòðèâàåìûìè çíà÷åíèÿìè Dim lLastRow As Long, li As Long Dim avArr, lr As Long
lCol = Val(InputBox("D", "Çàïðîñ ïàðàìåòðà", 4)) If lCol = 0 Then Exit Sub Application.ScreenUpdating = 0 lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count 'Имя листа с диапазоном значений на удаление Sheets ("Лист2") avArr = .Range(.Cells(1, 3), .Cells(.Rows.Count, 1).End(xlUp)) End With 'óäàëÿåì For lr = 1 To UBound(avArr, 1) sSubStr = avArr(lr, 1) For li = lLastRow To 1 Step -1 'If CStr(Cells(li, lCol)) = sSubStr Then Rows(li).Delete If -(InStr(Cells(li, lCol), sSubStr) > 0) <> lMet Then Rows(li).Delete Next li Next lr Application.ScreenUpdating = 1 End Sub
[/vba]
Как указать путь к "Лист2"? Нужно чтобы макрос работал не только в этой книге, а в любой открытой.
Здравствуйте. Прошу помощи в доработке макроса: [vba]
Код
Sub Del_Array_SubStr() Dim sSubStr As String 'èñêîìîå ñëîâî èëè ôðàçà Dim lCol As Long 'íîìåð ñòîëáöà ñ ïðîñìàòðèâàåìûìè çíà÷åíèÿìè Dim lLastRow As Long, li As Long Dim avArr, lr As Long
lCol = Val(InputBox("D", "Çàïðîñ ïàðàìåòðà", 4)) If lCol = 0 Then Exit Sub Application.ScreenUpdating = 0 lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count 'Имя листа с диапазоном значений на удаление Sheets ("Лист2") avArr = .Range(.Cells(1, 3), .Cells(.Rows.Count, 1).End(xlUp)) End With 'óäàëÿåì For lr = 1 To UBound(avArr, 1) sSubStr = avArr(lr, 1) For li = lLastRow To 1 Step -1 'If CStr(Cells(li, lCol)) = sSubStr Then Rows(li).Delete If -(InStr(Cells(li, lCol), sSubStr) > 0) <> lMet Then Rows(li).Delete Next li Next lr Application.ScreenUpdating = 1 End Sub
[/vba]
Как указать путь к "Лист2"? Нужно чтобы макрос работал не только в этой книге, а в любой открытой.emkub
Наверное стоит уточнить. Есть постоянно открытая "Книга_1". В ней список телефонов, которые нужно удалять из других книг + соответствующий макрос (он указан в первом посте). Я открываю "книгу 2", ИЗ которой нужно удалить номера, которые есть в "Книге 1" на "Листе 2" Макрос запускается на Активном листе (из него нужно удалить лишнее) "книги 2", должен брать данные из "книги 1" "листа 2" для сравнения. Сейчас он полностью рабочий, но только в своей книге.
Наверное стоит уточнить. Есть постоянно открытая "Книга_1". В ней список телефонов, которые нужно удалять из других книг + соответствующий макрос (он указан в первом посте). Я открываю "книгу 2", ИЗ которой нужно удалить номера, которые есть в "Книге 1" на "Листе 2" Макрос запускается на Активном листе (из него нужно удалить лишнее) "книги 2", должен брать данные из "книги 1" "листа 2" для сравнения. Сейчас он полностью рабочий, но только в своей книге.emkub