Просмотрела весь форум..была очень близка к решению вопроса сама, но не сложилось)... Нашла следующий код:
Код
Sub StrokaAfterCHILD()
Dim i As Range
For Each i In Selection
If i = "0-3y free" Then i.Offset(1, 0).EntireRow.Insert xlDown
Next
End Sub
Данный код вставляет пустую строку, после строки, где в ячейке есть железно фраза "0-3y free" (либо другая конкретная фраза, указанная в коде)..
А мне необходимо, в идеале: после строки, где в ячейке есть: ОДНА запятая - вставляло 2 пустых строки, где ДВЕ запятых - вставляло 3 пустых строки, а где есть любой текст но НЕТ запятых - то 1 пустая строка.
Если это сложно, то подскажите, пожалуйста, как прописать в макросе что выше, не "железно" значение, а СОДЕРЖИТ... не If i = "0-3y free", а i "содержит free". Так же, для наглядности прилагаю часть рабочего файла. Буду признательна за помощь!
othersidesss, код следует оформлять соответствующим тегом: ищите такую кнопку и исправьте своё сообщение. Спасибо! Помощь после устранения замечания. P.S. А чего только три буквы s в конце ника? Давайте штук 7 - красивее будет.
Sub Alina()
Dim i&, s$
For i = Cells(Rows.Count, "E").End(xlUp).Row To 2 Step -1
s = Cells(i, "E")
If Len(s) Then Rows(i + 1).Resize(1 + Len(s) - Len(Replace(s, ",", ""))).Insert
Next
End Sub
Теперь, видимо, будет просьба заполнить вставленные строки вышестоящими значениями?
Option Explicit
Sub insert_rows_after_conditions()
Dim rngCol As Range
Dim sTmp As String
Dim lTmp As Long
Dim i As Long
Const sKEY_PHRASE As String = "*free*"
Const sTARGET_DELIMETR As String = ","
Const sTARGET_COLUMN As String = "E"
Const lROW_START As Long = 2
With ActiveSheet
Set rngCol = .Range(sTARGET_COLUMN & lROW_START & ":" & sTARGET_COLUMN & _
.Cells(.Rows.Count, sTARGET_COLUMN).End(xlUp).Row)
For i = rngCol.Rows.Count To 1 Step -1
sTmp = rngCol.Rows(i).Value
If sTmp Like sKEY_PHRASE Then
lTmp = Len(sTmp) - Len(Replace(sTmp, sTARGET_DELIMETR, "")) + 1
rngCol.Rows(i).Offset(1).Resize(lTmp).EntireRow.Insert xlDown
End If
Next i
End With
End Sub
Формула массива (ФМ) вводится Ctrl+Shift+Enter Memento mori
Фантастика! Сразу вариант на погуглить, чтоб разобраться и вариант, чтоб сразу разобраться) Спасибо большое! Четыре дня в кабинете будет тихо без кликов мышки по 300тыс строкам))
F5 - выделить пустые - = - вверх - ctrl+enter девиз вообще не наш) дальше уже проверенным методом, хоть и займет пару дней, "разбивки текста по столбцам" и пару тройку сложнейших условий "если").
Здравствуйте! У вас супер решение! Помогите пожалуйста. Как доработать, что бы строки вставлялись выше сработанного условия? И можно ли сделать что бы вставлялись не пустые строки, а строки по макету? Грубо говоря Выдал_______ Принял______.
Андрей Андрей, я давно не посещаю данный ресурс и, ЕМНИП, то одно из правил форума гласит "один вопрос - одна тема". Лучше создайте свою тему (согласно правил форума) и приложите файл пример с двумя листами как было до срабатывания макроса и как будет после срабатывания макроса выглядеть таблица.
Формула массива (ФМ) вводится Ctrl+Shift+Enter Memento mori