Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Удаление строк в соответствии со списком с условием - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление строк в соответствии со списком с условием (Макросы/Sub)
Удаление строк в соответствии со списком с условием
CHEVRYACHOK Дата: Среда, 09.11.2016, 13:11 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 109
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день!
Пришел снова к Вам за помощью.
Есть список материала, позиции которого удаляются макросом, если он есть в списке исключений.
Но некоторый материал, который имеет порядковый номер, но тоже присутствует в списке исключать не нужно.
В этом и прошу помощи.
Как удалить весь материал, который находится в списке исключений, но не трогать те, которые имеют порядковый номер.
Заранее благодарен!
К сообщению приложен файл: Material.xlsm (34.5 Kb)
 
Ответить
СообщениеДобрый день!
Пришел снова к Вам за помощью.
Есть список материала, позиции которого удаляются макросом, если он есть в списке исключений.
Но некоторый материал, который имеет порядковый номер, но тоже присутствует в списке исключать не нужно.
В этом и прошу помощи.
Как удалить весь материал, который находится в списке исключений, но не трогать те, которые имеют порядковый номер.
Заранее благодарен!

Автор - CHEVRYACHOK
Дата добавления - 09.11.2016 в 13:11
Karataev Дата: Среда, 09.11.2016, 13:43 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
[vba]
Код
Sub Удаление_позиций()

    Dim shMat As Worksheet, shIskl As Worksheet, arrMat()
    Dim msg As Long, lr As Long, i As Long
    
    Application.ScreenUpdating = False
    
    Set shMat = Sheets("Материал")
    Set shIskl = Sheets("Исключить")
    
    lr = shMat.Cells(shMat.Rows.Count, "B").End(xlUp).Row
    arrMat() = shMat.Range("A1:B" & lr).Value
    
    For i = UBound(arrMat) To 1 Step -1
        If arrMat(i, 1) = Empty Then
            If WorksheetFunction.CountIf(shIskl.Columns("A"), arrMat(i, 2)) <> 0 Then
                shMat.Rows(i).Delete
                msg = msg + 1
            End If
        End If
    Next
    
    Application.ScreenUpdating = True
    
    MsgBox "Удалено строк: " & msg, vbInformation
    
End Sub
[/vba]
 
Ответить
Сообщение[vba]
Код
Sub Удаление_позиций()

    Dim shMat As Worksheet, shIskl As Worksheet, arrMat()
    Dim msg As Long, lr As Long, i As Long
    
    Application.ScreenUpdating = False
    
    Set shMat = Sheets("Материал")
    Set shIskl = Sheets("Исключить")
    
    lr = shMat.Cells(shMat.Rows.Count, "B").End(xlUp).Row
    arrMat() = shMat.Range("A1:B" & lr).Value
    
    For i = UBound(arrMat) To 1 Step -1
        If arrMat(i, 1) = Empty Then
            If WorksheetFunction.CountIf(shIskl.Columns("A"), arrMat(i, 2)) <> 0 Then
                shMat.Rows(i).Delete
                msg = msg + 1
            End If
        End If
    Next
    
    Application.ScreenUpdating = True
    
    MsgBox "Удалено строк: " & msg, vbInformation
    
End Sub
[/vba]

Автор - Karataev
Дата добавления - 09.11.2016 в 13:43
CHEVRYACHOK Дата: Среда, 09.11.2016, 14:05 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 109
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Karataev, круто! hands
Спасибо!
 
Ответить
СообщениеKarataev, круто! hands
Спасибо!

Автор - CHEVRYACHOK
Дата добавления - 09.11.2016 в 14:05
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление строк в соответствии со списком с условием (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!