Страницы: 1
RSS
Отбор диапазонов, содержащих слово, целиком
 
Суть: Есть повторяющиеся блоки данных разных размеров, начинающиеся со строки "Начало" и заканчивающиеся за строчку до следующего "Начало".
Если в блоке присутствует строка "Триггер", то этот блок отбирается на лист 2. Если строка "Триггер" отсутствует, то блок не отбирается на лист 2.

Пробовал сделать так, чтобы область содержащая Триггер, выделялась цветом, и далее планировалось фильтровать блоки по цвету.
 
Цитата
Пробовал сделать так
Ну уж, если Моссовет не может, то Питер вам поможет.
Добавьте лист с названием Лист2. При активном листе 01 или 01 (2) запустите макрос
Код
Sub StartEnd()
Dim iLastRow As Long
Dim iLR As Long
Dim FoundCell As Range
Dim FoundTrigger As Range
Dim FAdr As String
Dim FRow As Long
Dim ERow As Long
Dim List2 As Worksheet
   Set List2 = ThisWorkbook.Worksheets("Лист2")
     List2.Cells.Clear
   iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
 With Range("A1:A" & iLastRow)
    Set FoundCell = .Find("Начало", .Cells(.Cells.Count), xlValues, xlWhole, , xlNext)
    If Not FoundCell Is Nothing Then
     FAdr = FoundCell.Address
     FRow = FoundCell.Row
      Do
       Set FoundCell = .FindNext(FoundCell)
       ERow = FoundCell.Row - 2
       If ERow > FRow And ERow < iLastRow Then
       Else
         ERow = iLastRow
       End If
         Set FoundTrigger = Range(Cells(FRow, "A"), Cells(ERow, "D")).Find("Триггер", , xlValues, xlWhole)
           If Not FoundTrigger Is Nothing Then
             iLR = List2.Cells(List2.Rows.Count, 1).End(xlUp).Row + 2
             Range(Cells(FRow, "A"), Cells(ERow, "D")).Copy List2.Cells(iLR, 1)
           End If
       Set FoundCell = .Find("Начало", .Cells(FRow, "A"), xlValues, xlWhole)
       FRow = FoundCell.Row
      Loop While FoundCell.Address <> FAdr
    End If
 End With
   List2.Rows("1:2").Delete
End Sub
 
Питер и не с таким справлялся :-)
В имена

=COUNTIF(INDEX('01'!$A:$D;LOOKUP(2;1/('01'!$A$1:A1="начало");ROW('01'!$A$1:A1));):INDEX('01'!$A:$D;IFERROR(ROW('01'!A1)-2+MATCH("Начало";'01'!$A2:INDEX('01'!$A:$A;ROWS('01'!$A:$A)););INDEX('01'!$A:$A;ROWS('01'!$A:$A))););"Триггер")
Изменено: БМВ - 20.04.2021 07:56:55
По вопросам из тем форума, личку не читаю.
 
Kuzmich, БМВ,
Благодарю! Идеально срабатывает
Страницы: 1
Наверх