Форум программистов, компьютерный форум, киберфорум
MS Office Excel
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 21.01.2020
Сообщений: 2
1

Доработка макроса по удалению строк содержащие минус слова

25.06.2020, 01:06. Просмотров 114. Ответов 1
Метки нет (Все метки)

Ребят, привет.

Ниже приведенный макрос удаляет строки в "Лист1" в выбранном столбце, если присутствуют слова из "Лист2".

Нужно исправить его таким образом, чтобы он не удалял строки, а выписывал их на отдельный лист. Как это осуществить?

Код
'процедура оставляет в листе только те значения, которые перечислены в списке
Sub DELfrom2list()
    Dim sSubStr As String    'искомое слово или фраза
    Dim lCol As Long    'номер столбца с просматриваемыми значениями
    Dim lLastRow As Long, li As Long
    Dim avArr, lr As Long
    Dim arr
 
    lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение, "Запрос параметра", 1))
    If lCol = 0 Then Exit Sub
    Application.ScreenUpdating = 0
    lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
    'заносим в массив значения листа, в котором необходимо удалить строки
    arr = Cells(1, lCol).Resize(lLastRow).Value
    'получаем с Лист2 значения, которые надо удалить в активном листе
    With Sheets("Лист2") 'Имя листа с диапазоном значений на удаление
        avArr = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
    End With
    'удаляем
    Dim rr As Range
    For lr = 1 To UBound(avArr, 1)
        sSubStr = avArr(lr, 1)
        For li = 1 To lLastRow 'цикл с первой строки до конца
            If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then
                If rr Is Nothing Then
                    Set rr = Cells(li, 1)
                Else
                    Set rr = Union(rr, Cells(li, 1))
                End If
            End If
            DoEvents
        Next li
        DoEvents
    Next lr
    If Not rr Is Nothing Then rr.EntireRow.Delete
    Application.ScreenUpdating = 1
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.06.2020, 01:06
Ответы с готовыми решениями:

Код по удалению строк из столбца, содержащие текст
Здравствуйте ребят ! Мне нужно написать код чтобы стереть из 7 столбца все строки содержащие текст...

Ускорить работу макроса по удалению одинаковых строк и суммированию количества
Есть такой код можно ли его как-нибудь ускорить для большого количества строк и добавить сумму еще...

Добавление строк + доработка макроса
имеется макрос который добавляет строку при нажатии на "+" и удаляет при нажатии на "-" подскажите...

Поиск файлов в каталоге и вывод строк содержащие определенные слова
find -name 'filename' -execgrep {} $name \; Подскажите в чем ошибка и правильно ли я делаю...

1
4038 / 2163 / 915
Регистрация: 01.12.2010
Сообщений: 4,507
25.06.2020, 08:39 2
Строка #10

Visual Basic
1
If lCol < 1 Or lCol > Columns.Count Then Exit Sub
Строка #35

Visual Basic
1
If Not rr Is Nothing Then rr.EntireRow.Copy Worksheets.Add.Cells(1)
Тот же результат можно получить и с помощью расширенного фильтра, причём, при желании, даже без использования макроса.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.06.2020, 08:39

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

В массиве строк найти все слова, содержащие заданное количество гласных букв
Добрый вечер! Прошу пожалуйста помочь/подсказать В программе нужно ввести количество строк(но не...

В заданном массиве строк найти все слова, содержащие заданное сочетание символов
Здравствуйте. Помогите, пожалуйста, решить задачу. В заданном массиве строк найти все слова,...

В заданном массиве строк найти все слова, содержащие заданное сочетание символов
в заданном массиве строк найти все слова,содержащие заданное сочетание символов,и вывести их на...

Обработка текстовых строк. Напечатать все слова, содержащие хотя бы одну цифру
Напечатать все слова, содержащие хотя бы одну цифру.

Для трех исходных строк вывести на экран все слова из строки, содержащие по 4 буквы.
Написать программу в соответствии с заданием. Вычислительный процесс выполнить с использованием...

Массив: В массиве строк найти все слова, содержащие заданное количество гласных букв
Здравствуйте. Подскажите,пожалуйста, как доделать код. Мне нужно в массиве строк найти все слова,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.