Описание. Есть файл, на листе - длинный список. Каждые Н строк повторяется одно слово - Exact. Надо сделать так, чтобы, если в строке в определенной ячейке есть это слово, после такой строки (со словом) вставлялось 2 пустые строки. Можно ли это сделать как-то автоматически? Там 3000 строк, руками делать - убиться можно. Уже голову сломала... Макросы писать не умею. Не въезжаю совсем
Описание. Есть файл, на листе - длинный список. Каждые Н строк повторяется одно слово - Exact. Надо сделать так, чтобы, если в строке в определенной ячейке есть это слово, после такой строки (со словом) вставлялось 2 пустые строки. Можно ли это сделать как-то автоматически? Там 3000 строк, руками делать - убиться можно. Уже голову сломала... Макросы писать не умею. Не въезжаю совсем Svetiki
Pelena, незарегистрированные не могут прикладывать файлы. Пришлось регистрироваться. В приложении - файл, что есть изначально и что надо получить на разных листах. Заранее спасибо!
Pelena, незарегистрированные не могут прикладывать файлы. Пришлось регистрироваться. В приложении - файл, что есть изначально и что надо получить на разных листах. Заранее спасибо!Svetiki
Sub tt() Dim i& Application.ScreenUpdating = False For i = [a1].CurrentRegion.Rows.Count To 1 Step -1 If Cells(i, 3) = "Exact" Then Cells(i + 1, 1).Resize(2).EntireRow.Insert Next Application.ScreenUpdating = True End Sub
[/vba]
[vba]
Код
Sub tt() Dim i& Application.ScreenUpdating = False For i = [a1].CurrentRegion.Rows.Count To 1 Step -1 If Cells(i, 3) = "Exact" Then Cells(i + 1, 1).Resize(2).EntireRow.Insert Next Application.ScreenUpdating = True End Sub
Опоздал с ответом. Выкладываю, чтобы не пропало [vba]
Код
Sub Macros() Dim i As Long Application.ScreenUpdating = False For i = Range("C" & Rows.Count).End(xlUp).Row To 1 Step -1 If Range("C" & i) = "Exact" Then Rows(i + 1).Resize(2).EntireRow.Insert Next i Application.ScreenUpdating = True End Sub
[/vba]
Опоздал с ответом. Выкладываю, чтобы не пропало [vba]
Код
Sub Macros() Dim i As Long Application.ScreenUpdating = False For i = Range("C" & Rows.Count).End(xlUp).Row To 1 Step -1 If Range("C" & i) = "Exact" Then Rows(i + 1).Resize(2).EntireRow.Insert Next i Application.ScreenUpdating = True End Sub
Игорь, скажите пожалуйста, чем? Разница, можно сказать, только в одной строке. Только из-за того, что в цикле с CurrentRegion может быть проверка большего количества ячеек?
Цитата (Hugo)
правильнее/универсальнее
Игорь, скажите пожалуйста, чем? Разница, можно сказать, только в одной строке. Только из-за того, что в цикле с CurrentRegion может быть проверка большего количества ячеек?AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Ну да - 1. Currentregion может быть выше, чем данные в C, т.е. будут проверяться лишние ячейки - это правда не критично. 2. [a1].Currentregion может не включать третий столбец и быть ниже - а вот это уже финиш. Правильнее было бы брать [c1].Currentregion - тогда можно только с числом строк промахнуться, что не критично. 3. Мой код одноразовый
В общем, поленился я буквы писать, сделал как проще конкретно под пример...
Ну да - 1. Currentregion может быть выше, чем данные в C, т.е. будут проверяться лишние ячейки - это правда не критично. 2. [a1].Currentregion может не включать третий столбец и быть ниже - а вот это уже финиш. Правильнее было бы брать [c1].Currentregion - тогда можно только с числом строк промахнуться, что не критично. 3. Мой код одноразовый
В общем, поленился я буквы писать, сделал как проще конкретно под пример...Hugo