Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Добавление строк в таблице после каждой N строки - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Добавление строк в таблице после каждой N строки (Макросы/Sub)
Добавление строк в таблице после каждой N строки
Anis625 Дата: Пятница, 04.09.2020, 15:18 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 435
Репутация: 14 ±
Замечаний: 0% ±

Excel 2013
Добрый день всем участникам форума!

Пытаюсь добавить в таблице после каждого блока периода (по столбцу С) добавить пустую строку.
Нашел макрос (в файле) который добавляет с заданным в нем интервалом (в моем примере 3 т.к. пока 3 периода) пустые строки + почему то он добавляет и выше таблицы строки тоже (пытался изменить не получилось).
Но количество периодов растет и в ручную в макросе менять можно конечно, но для пользователей это космос куда-то заходить и менять.
Можно ли это как то автоматизировать?
К сообщению приложен файл: _____.xlsb(30.0 Kb)
 
Ответить
СообщениеДобрый день всем участникам форума!

Пытаюсь добавить в таблице после каждого блока периода (по столбцу С) добавить пустую строку.
Нашел макрос (в файле) который добавляет с заданным в нем интервалом (в моем примере 3 т.к. пока 3 периода) пустые строки + почему то он добавляет и выше таблицы строки тоже (пытался изменить не получилось).
Но количество периодов растет и в ручную в макросе менять можно конечно, но для пользователей это космос куда-то заходить и менять.
Можно ли это как то автоматизировать?

Автор - Anis625
Дата добавления - 04.09.2020 в 15:18
Anis625 Дата: Пятница, 04.09.2020, 15:45 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 435
Репутация: 14 ±
Замечаний: 0% ±

Excel 2013
Нашел ошибку чтобы выше таблицы не добавлял строки, исправил:
[vba]
Код
Sub Insert_Rows2()
    Dim li As Long
    Application.ScreenUpdating = 0
    For li = Cells(Rows.Count, 1).End(xlUp).Row To 6 Step -3
        Rows(li + 1).Insert
    Next li
    Application.ScreenUpdating = 1
End Sub
[/vba]
Подскажите, пожалуйста, как заменить Step -3 чтобы учитывал количество периодов?


Сообщение отредактировал Anis625 - Пятница, 04.09.2020, 15:46
 
Ответить
СообщениеНашел ошибку чтобы выше таблицы не добавлял строки, исправил:
[vba]
Код
Sub Insert_Rows2()
    Dim li As Long
    Application.ScreenUpdating = 0
    For li = Cells(Rows.Count, 1).End(xlUp).Row To 6 Step -3
        Rows(li + 1).Insert
    Next li
    Application.ScreenUpdating = 1
End Sub
[/vba]
Подскажите, пожалуйста, как заменить Step -3 чтобы учитывал количество периодов?

Автор - Anis625
Дата добавления - 04.09.2020 в 15:45
Pelena Дата: Пятница, 04.09.2020, 15:48 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16638
Репутация: 3597 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
Кол-во периодов где-то задано? Или как его определять?


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеКол-во периодов где-то задано? Или как его определять?

Автор - Pelena
Дата добавления - 04.09.2020 в 15:48
nilem Дата: Пятница, 04.09.2020, 15:52 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1582
Репутация: 546 ±
Замечаний: 0% ±

Excel 2013, 2016
попробуйте так:
[vba]
Код
Sub Insert_Rows()
Dim lLastRow As Long, li As Long
Application.ScreenUpdating = 0
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
For li = lLastRow To 6 Step -1
    If Len(Cells(li, 1)) Then Rows(li).Insert
Next li
Application.ScreenUpdating = 1
End Sub
[/vba]
или
[vba]
Код
Sub Insert_Rows22()
On Error Resume Next: Err.Clear
Range("A7", Cells(Rows.Count, 1).End(xlUp)).SpecialCells(xlCellTypeFormulas, 1).EntireRow.Insert
End Sub
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениепопробуйте так:
[vba]
Код
Sub Insert_Rows()
Dim lLastRow As Long, li As Long
Application.ScreenUpdating = 0
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
For li = lLastRow To 6 Step -1
    If Len(Cells(li, 1)) Then Rows(li).Insert
Next li
Application.ScreenUpdating = 1
End Sub
[/vba]
или
[vba]
Код
Sub Insert_Rows22()
On Error Resume Next: Err.Clear
Range("A7", Cells(Rows.Count, 1).End(xlUp)).SpecialCells(xlCellTypeFormulas, 1).EntireRow.Insert
End Sub
[/vba]

Автор - nilem
Дата добавления - 04.09.2020 в 15:52
Anis625 Дата: Пятница, 04.09.2020, 15:53 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 435
Репутация: 14 ±
Замечаний: 0% ±

Excel 2013
Pelena,
Наверно макросом можно посчитать количество уникальных значений в столбце С
или как вариант разница между номером строки значения 2 (в столбце номер по порядку) и значения 1 +1
 
Ответить
СообщениеPelena,
Наверно макросом можно посчитать количество уникальных значений в столбце С
или как вариант разница между номером строки значения 2 (в столбце номер по порядку) и значения 1 +1

Автор - Anis625
Дата добавления - 04.09.2020 в 15:53
Anis625 Дата: Пятница, 04.09.2020, 16:50 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 435
Репутация: 14 ±
Замечаний: 0% ±

Excel 2013
nilem,
Круто. Макрос срабатывает, но применяется только для первой группы строк, в последней - не добавляет строку
Проверил оба, к нижней строке не добавляется строка


Сообщение отредактировал Anis625 - Пятница, 04.09.2020, 16:51
 
Ответить
Сообщениеnilem,
Круто. Макрос срабатывает, но применяется только для первой группы строк, в последней - не добавляет строку
Проверил оба, к нижней строке не добавляется строка

Автор - Anis625
Дата добавления - 04.09.2020 в 16:50
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Добавление строк в таблице после каждой N строки (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2020 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!