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

Вход

Регистрация

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

 

= Мир MS Excel/Удалить строки в ячейке по условию - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Удалить строки в ячейке по условию
pashatank Дата: Понедельник, 03.09.2018, 14:41 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 58
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Здравствуйте! Уважаемые форумчане, помогите в макрос добавить шаблон, по которому будет удаляться ненужная строка, пример в ячейке несколько строк:

категория1/категория2//
категория1/категория2/Знач/

есть вот такой макрос, который удаляет по шаблону "категория2//" эту строку

[vba]
Код
Sub УдалениеСтрокПоУсловию()
    Dim r As Long, FirstRow As Long, LastRow As Long
    Dim Region As Range, iRow As Range, Cell As Range
    Dim Shablon1 As String
    Shablon1 = "*категория2//*"
[/vba]

как в макрос добавить еще один шаблон, для строки Знач/ ?


Сообщение отредактировал pashatank - Понедельник, 03.09.2018, 14:43
 
Ответить
СообщениеЗдравствуйте! Уважаемые форумчане, помогите в макрос добавить шаблон, по которому будет удаляться ненужная строка, пример в ячейке несколько строк:

категория1/категория2//
категория1/категория2/Знач/

есть вот такой макрос, который удаляет по шаблону "категория2//" эту строку

[vba]
Код
Sub УдалениеСтрокПоУсловию()
    Dim r As Long, FirstRow As Long, LastRow As Long
    Dim Region As Range, iRow As Range, Cell As Range
    Dim Shablon1 As String
    Shablon1 = "*категория2//*"
[/vba]

как в макрос добавить еще один шаблон, для строки Знач/ ?

Автор - pashatank
Дата добавления - 03.09.2018 в 14:41
Pelena Дата: Понедельник, 03.09.2018, 15:30 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19603
Репутация: 4660 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
Добавьте [vba]
Код
Shablon2 = "*Знач/*"
[/vba]
а в условии на удаление объедините их с помощью Or

Если не угадала, выложите весь код


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
Добавьте [vba]
Код
Shablon2 = "*Знач/*"
[/vba]
а в условии на удаление объедините их с помощью Or

Если не угадала, выложите весь код

Автор - Pelena
Дата добавления - 03.09.2018 в 15:30
pashatank Дата: Понедельник, 03.09.2018, 18:13 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 58
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Пробовал создавать второй шаблон, но не выходит, вот целиком

[vba]
Код
Sub ÓäàëåíèåÑòðîêÏîÓñëîâèþ()
    Dim r As Long, FirstRow As Long, LastRow As Long
    Dim Region As Range, iRow As Range, Cell As Range
    Dim Shablon1 As String
    Shablon1 = "*категория2//*"

    Set Region = ActiveSheet.UsedRange
    FirstRow = Region.Row
    LastRow = Region.Row - 1 + Region.Rows.Count
    For r = LastRow To FirstRow Step -1
        Set iRow = Region.Rows(r - FirstRow + 1)
        For Each Cell In iRow.Cells
            If Cell Like Shablon1 Then
                XX = Split(Cell, Chr(10))
                s = ""
                For n = 0 To UBound(XX)
  
                    If Not XX(n) Like Shablon1 Then
                        s = s & XX(n) & Chr(10)
                    End If
                Next
                If Len(s) > 0 Then
                    s = Mid(s, 1, Len(s) - 1)
                End If
                Cell = s
                rr = 9
            End If
        Next Cell
    Next r
End Sub
[/vba]
 
Ответить
СообщениеПробовал создавать второй шаблон, но не выходит, вот целиком

[vba]
Код
Sub ÓäàëåíèåÑòðîêÏîÓñëîâèþ()
    Dim r As Long, FirstRow As Long, LastRow As Long
    Dim Region As Range, iRow As Range, Cell As Range
    Dim Shablon1 As String
    Shablon1 = "*категория2//*"

    Set Region = ActiveSheet.UsedRange
    FirstRow = Region.Row
    LastRow = Region.Row - 1 + Region.Rows.Count
    For r = LastRow To FirstRow Step -1
        Set iRow = Region.Rows(r - FirstRow + 1)
        For Each Cell In iRow.Cells
            If Cell Like Shablon1 Then
                XX = Split(Cell, Chr(10))
                s = ""
                For n = 0 To UBound(XX)
  
                    If Not XX(n) Like Shablon1 Then
                        s = s & XX(n) & Chr(10)
                    End If
                Next
                If Len(s) > 0 Then
                    s = Mid(s, 1, Len(s) - 1)
                End If
                Cell = s
                rr = 9
            End If
        Next Cell
    Next r
End Sub
[/vba]

Автор - pashatank
Дата добавления - 03.09.2018 в 18:13
Pelena Дата: Понедельник, 03.09.2018, 19:26 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19603
Репутация: 4660 ±
Замечаний: ±

Excel 365 & Mac Excel
Проверить не на чем, но как-то так попробуйте
[vba]
Код
Sub ÓäàëåíèåÑòðîêÏîÓñëîâèþ()
    Dim r As Long, FirstRow As Long, LastRow As Long
    Dim Region As Range, iRow As Range, Cell As Range
    Dim Shablon1 As String
    Shablon1 = "*категория2//*"
    Shablon2 = "*Знач/*"
    Set Region = ActiveSheet.UsedRange
    FirstRow = Region.Row
    LastRow = Region.Row - 1 + Region.Rows.Count
    For r = LastRow To FirstRow Step -1
        Set iRow = Region.Rows(r - FirstRow + 1)
        For Each Cell In iRow.Cells
            If Cell Like Shablon1 Or Cell Like Shablon2 Then
                XX = Split(Cell, Chr(10))
                s = ""
                For n = 0 To UBound(XX)

                    If Not XX(n) Like Shablon1 And Not XX(n) Like Shablon2 Then
                        s = s & XX(n) & Chr(10)
                    End If
                Next
                If Len(s) > 0 Then
                    s = Mid(s, 1, Len(s) - 1)
                End If
                Cell = s
                rr = 9
            End If
        Next Cell
    Next r
End Sub
[/vba]
Хотя не увидела удаления строк. Если Вам надо просто исключить из текста какие-то фрагменты, то проще использовать Replace.
Приложите файл с примером, что есть и что надо


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПроверить не на чем, но как-то так попробуйте
[vba]
Код
Sub ÓäàëåíèåÑòðîêÏîÓñëîâèþ()
    Dim r As Long, FirstRow As Long, LastRow As Long
    Dim Region As Range, iRow As Range, Cell As Range
    Dim Shablon1 As String
    Shablon1 = "*категория2//*"
    Shablon2 = "*Знач/*"
    Set Region = ActiveSheet.UsedRange
    FirstRow = Region.Row
    LastRow = Region.Row - 1 + Region.Rows.Count
    For r = LastRow To FirstRow Step -1
        Set iRow = Region.Rows(r - FirstRow + 1)
        For Each Cell In iRow.Cells
            If Cell Like Shablon1 Or Cell Like Shablon2 Then
                XX = Split(Cell, Chr(10))
                s = ""
                For n = 0 To UBound(XX)

                    If Not XX(n) Like Shablon1 And Not XX(n) Like Shablon2 Then
                        s = s & XX(n) & Chr(10)
                    End If
                Next
                If Len(s) > 0 Then
                    s = Mid(s, 1, Len(s) - 1)
                End If
                Cell = s
                rr = 9
            End If
        Next Cell
    Next r
End Sub
[/vba]
Хотя не увидела удаления строк. Если Вам надо просто исключить из текста какие-то фрагменты, то проще использовать Replace.
Приложите файл с примером, что есть и что надо

Автор - Pelena
Дата добавления - 03.09.2018 в 19:26
pashatank Дата: Понедельник, 03.09.2018, 19:55 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 58
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Уважаемая Pelena, все получилось, спасибо Вам огромное!
 
Ответить
СообщениеУважаемая Pelena, все получилось, спасибо Вам огромное!

Автор - pashatank
Дата добавления - 03.09.2018 в 19:55
  • Страница 1 из 1
  • 1
Поиск:

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