У меня все работает нормально, но мучительно медленно. Первая функция, которая переименовывает некоторые ячейки, работает очень быстро, но цикл while, который удаляет определенные объединенные строки ячеек, занимает несколько минут для нескольких листов.
Вот соответствующий код:
Dim i As Long
Dim LastRow As Long
LastRow = Cells(Rows.Count, rowtofilter).End(xlUp).Row
'Search for merged cells and not "string1" in column2 and not "string2" in column4, replace text
For i = rowtofilter To LastRow
If Range(ColumnLetter1 & i).MergeArea.Cells.Count > 1 And Range(ColumnLetter2 & i) <> "string1" And Range(ColumnLetter4 & i) <> "string2" Then
Range(ColumnLetter3 & i).Value = "Merged Cells"
End If
Next i
'Search for merged cells and not "string1" in column2 and not "string2" in column4, delete rows
i = LastRow - rowtofilter
Do While i > (rowtofilter - 1)
If Range(ColumnLetter1 & i).Value = 0 And Range(ColumnLetter2 & i) <> "string1" And Range(ColumnLetter4 & i) <> "string2" Then
Range(ColumnLetter1 & i).EntireRow.Delete
End If
i = i - 1
Loop