Добрый день, прошу помочь с написанием макроса, который бы очистил строки или диапазоны при следующих условиях: 1) В столбцах E или H есть слово "выкуп" или "отмена" (выделены желтым цветом) - очистить выделенные ячейки 2) В столбцах E или H есть слово "стоп" (выделены красным цветом) - саму строку и выделенный после нее диапазон строк вплоть до начала следующего списка очистить В самом файле выделения цветом нет, сделал для наглядности. Данные в остальных столбцах закономерностям не подчинены. Всё условие строится на трёх ключевых словах в ячейках.
Справа находится таблица, к формату которой бы хотелось прийти после проведения необходимых манипуляций. Все данные находятся в диапазоне A1:H650. Заранее спасибо
Под словом очистил понимается удаление строк или удаление данных из ячеек в этих строках?
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.
Во вложении файл. Очистка закоментирована. Выделяет цветом. Если нужна очистка просто раскомменитруйте строчку .ClearContents
Код
Option Explicit
Option Compare Text
Sub Analiz()
Dim i&
Dim n As Boolean
n = False
With Лист1
For i = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
If .Cells(i, 5) = "выкуп" Then
With .Range(.Cells(i, 2), .Cells(i, 8))
'.ClearContents
.Interior.ColorIndex = 44
End With
End If
If .Cells(i, 8) = "отмена" Then
With .Range(.Cells(i, 2), .Cells(i, 8))
'.ClearContents
.Interior.ColorIndex = 6
End With
End If
If n = False Then If .Cells(i, 5) = "стоп" Or .Cells(i, 8) = "стоп" Then n = True
If n = True And InStr(1, .Cells(i, 9), "Список", vbTextCompare) = 0 Then
With .Range(.Cells(i, 2), .Cells(i, 8))
'.ClearContents
.Interior.ColorIndex = 3
End With
Else
n = False
End If
Next i
End With
End Sub
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.