Как в excel заполнить определенное количество строк

Как в Excel вставить нужное количество строк

Добрый день, уважаемые читатели и подписчики блога! Статья сегодня будет короткой. В ней будет ответ на вопрос: как быстро вставить необходимое количество строк в таблицу? Оговорюсь сразу — стандартными способами.

Вставка не смежных строк 

Необходимо выделить строки через одну с зажатой клавишей Ctrl.

Как в Excel вставить нужное количество строк

Далее щёлкаем на любую выделенную строку правой кнопкой мышки и выбираем команду вставить.

Как в Excel вставить нужное количество строк

Получим вот такой результат. Помним о том, что в Excel  новые строки вставляются только выше выделенной строки, текст соответственно будет сползать вниз.

Как в Excel вставить нужное количество строк

Для смежных строк алгоритм будет точно такой же. Только без клавиши Ctrl.

Выделение и вставка большого количества строк

Как вы уже догадались, для вставки такого типа необходимо выделить сразу много строк. Тут поможет небольшой трюк:

  • щёлкаем на первую ячейку (строку) с которой хотим начать выделение;
  • в адресном поле стираем букву столбца;
  • ставим двоеточие и указываем номер строки до которой необходимо выделение;
  • нажимаем Enter.

Как в Excel вставить нужное количество строк

Выделится диапазон с 3 по 50 строку.

Как в Excel вставить нужное количество строк

Щёлкаем по выделенному правой кнопкой, выбираем «Вставить». Помним, что строки вставляются выше! К таблице добавились строки с границами в количестве 47 штук. Уменьшу масштаб, чтобы влезли все строки.

Как в Excel вставить нужное количество строк

Вот и всё. Да, неудобно, да, долго, но авторы программы почему-то не оставили другого стандартного способа добавления строк. 

Если вы знаете другой способ буду очень рад услышать его в комментариях!

Inserting new rows is the easiest way to add new fields into your worksheet area. Since Excel inserts rows by copying the formatting of the previous row, it is usually more practical than moving bottom cells to open up space for new data. Thanks to VBA, we can insert rows dynamically. In this guide, we’re going to show you how to insert specific number of rows in Excel.

Download Workbook

Preparation

First, you need to open the VBA (Visual Basic for Applications) window and add a module.

  1. Press Alt + F11 to open the VBA window
  2. In the VBA window, click Insert on the toolbar
  3. Click the Module option

Macro logic

The logic behind of inserting rows is controlled by two elements:

  1. The row above which you want to insert new rows. You can think of this as the anchor row.
  2. Number of rows.

Once these elements are set, the macro will select the number of rows, starting with the anchor row and run Insert method.

Range(Rows(AnchorRow), Rows(AnchorRow + RowCount — 1)).Insert

You can identify these elements in the code with set values, gather this information dynamically such as from the active cell, or through user input.

AnchorRow = 3 ‘Static
AnchorRow = ActiveCell.Row ‘Selected Cell
AnchorRow = Application.InputBox(Prompt:=»Please select a cell», Type:=8).Row ‘User input

Select the one that best fits your use case. Let’s now see the code block.

How to insert specific number of rows

The following code requires the user select a cell in the anchor row.

Sub InsertRows1()

    ‘Define variables

    Dim AnchorRow As Integer, RowCount As Integer

    ‘Set variables

    AnchorRow = ActiveCell.Row  ‘Selected Cell

    RowCount = Application.InputBox(Prompt:=»Please enter how many rows you want to insert», Type:=1)   ‘User input

    ‘Insert rows

    Range(Rows(AnchorRow), Rows(AnchorRow + RowCount — 1)).Insert

End Sub

How to insert specific number of rows in Excel 03 - InsertRow1

The next and final sample code will insert a specific number of rows above the user-prompted cell.

‘This macro will insert static number of rows above the user-prompted cell

Sub InsertRows2()

    ‘Define variables

    Dim AnchorRow As Integer, RowCount As Integer

    ‘Set variables

    AnchorRow = Application.InputBox(Prompt:=»Please select a cell», Type:=8).Row   ‘User input

    RowCount = 3   ‘Static

    ‘Insert rows

    Range(Rows(AnchorRow), Rows(AnchorRow + RowCount — 1)).Insert

End Sub

How to insert specific number of rows in Excel 05 - InsertRow2

How can I fill a certain number of rows in Excel?

Let’s say 5 and it fills 5 rows with numbers, like 1 2 3 4 5 (downwards 1 number each cell). If I change it to 12 it should result in 1 2 3 4 5 6 7 8 9 10 11 12.

I could do it by dragging the formula =A1+1 down, but then I have to adjust the last number manually (it will vary from ~50 to ~900).

feetwet's user avatar

feetwet

3,1967 gold badges45 silver badges83 bronze badges

asked Jan 9, 2014 at 19:56

Stefan's user avatar

2

If the need for automation is not so great then you can use built-in Excel functionality as outlined in my answer. If you need a more automated solution then you will have to record a Macro to accomplish it.

Using the Fill option from the ribbon/toolbar, select Series and then adjust your parameters accordingly, filling in a Column from 1 to n. Screeshots below:

This brings up a dialog box which you complete as per your requirements.

answered Jan 9, 2014 at 20:12

Matt Weller's user avatar

Matt WellerMatt Weller

2,6742 gold badges21 silver badges30 bronze badges

Ok. This solution will require you to paste a formula down your entire possible range (ex. in your case to row 900). Assuming:
— Your first value is in A1
— Your step size is 1
— The number of rows you want to change is in D1,

You should be able to copy the following formula into A2 and then drag it through your desired range:

=IF(ROW()<=$D$1,A1+1,"")

The only caveats are:
— That you can’t enter values manually into Column A in that entire range
— There are 900 formulas hanging out and recalculating on your sheet

answered Jan 9, 2014 at 20:41

M.Banerjee's user avatar

M.BanerjeeM.Banerjee

951 silver badge7 bronze badges

1

Click in any cell (let’s assume cell C5). Type =ROW()-ROW(C$5)+1 and press enter then drag down the arrow at the bottom right corner to create numbering as far as you want. One nice advantage is that it will not break if you add rows before or within, or delete rows before or within. At any time you can go to the last cell and drag more to create more numbers and it will pick up right from the last number.

BaCaRoZzo's user avatar

BaCaRoZzo

7,4126 gold badges55 silver badges80 bronze badges

answered Dec 27, 2014 at 16:43

Bill's user avatar

Войдите с помощью учетной записи Майкрософт

Войдите или создайте учетную запись.

Здравствуйте,

Выберите другую учетную запись.

У вас несколько учетных записей

Выберите учетную запись, с помощью которой нужно войти.

Excel 2013

  1. Чтобы вставить несколько строк, выделите строки, над которыми необходимо вставить новые строки.

  2. Выделять следует столько же строк, сколько нужно вставить. Например, чтобы вставить три новых строки, выделите три строки.

  3. Щелкните правой кнопкой мыши выделенные ячейки и выберите «Вставить» На листе появятся новые пустые строки.

Нужна дополнительная помощь?

Спасибо за ваш отзыв!

×

 

enot7

Пользователь

Сообщений: 200
Регистрация: 15.03.2017

Добрый день! Подскажите, как добавить автоматически пустые строки (в примере — 10 стр, может и 20, но думаю можно регулировать потом количество), перед каждой пустой ячейкой в столбце В? Количество строк может быть разным, большие объемы отчета не позволяют делать добавление в ручную на каждую строчку.

Изменено: enot728.05.2018 16:15:18
(не правильная формулировка задания)

 

TheBestOfTheBest

Пользователь

Сообщений: 2366
Регистрация: 03.04.2015

Excel 2010 +PLEX +SaveToDB +PowerQuery

Выделяете 10 строк, начиная с той, перед которой требуется вставить, Ctrl+ (плюс около цифр справа).

Неизлечимых болезней нет, есть неизлечимые люди.

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

 

enot7

Пользователь

Сообщений: 200
Регистрация: 15.03.2017

TheBestOfTheBest, так это вручную получается на каждую нужную строчку добавление, а мне нужно автоматичеси, т.к. строк тысячи.

 

StoTisteg

Пользователь

Сообщений: 441
Регистрация: 07.05.2018

Макрос написать можно, но как мы узнаем, по какому признаку находить, после чего вставлять и сколько?

 

enot7

Пользователь

Сообщений: 200
Регистрация: 15.03.2017

StoTisteg, добавить 10 строк (может и 20, но думаю можно регулировать потом количество), перед каждой строчкой где заполнена ячейка в столбце В.

 

TheBestOfTheBest

Пользователь

Сообщений: 2366
Регистрация: 03.04.2015

Excel 2010 +PLEX +SaveToDB +PowerQuery

#7

28.05.2018 14:53:22

Цитата
enot7 написал:
нужную строчку добавление, а мне нужно автоматичеси, т.к. строк тысячи.

А почему это не вписано в #1? Может Вы допишите полностью что надо? С учетом #6

Изменено: TheBestOfTheBest28.05.2018 14:53:59

Неизлечимых болезней нет, есть неизлечимые люди.

 

enot7

Пользователь

Сообщений: 200
Регистрация: 15.03.2017

TheBestOfTheBest, вы меня подзапутали) в #1 прописано правильнее после чего и сколько строк.
В итоге: добавить 10 строк (может и 20, но думаю можно регулировать потом количество), перед каждой пустой ячейкой в столбце В.

Изменено: enot728.05.2018 15:14:57
(не правильная формулировка задания)

 

TheBestOfTheBest

Пользователь

Сообщений: 2366
Регистрация: 03.04.2015

Excel 2010 +PLEX +SaveToDB +PowerQuery

А где написано; «строк тысячи». Из #1 видно что надо добавить 10 строк и все.

Неизлечимых болезней нет, есть неизлечимые люди.

 

enot7

Пользователь

Сообщений: 200
Регистрация: 15.03.2017

TheBestOfTheBest, азве это обязательно, я же написала автоматически? ранее не приходилось уточнять количество строк в файле, который в работе, я же прикрепила только пример. Может быть тысячи, может быть одна тысяча, а может и 500, это разные отчеты будут.

 

Казанский

Пользователь

Сообщений: 8839
Регистрация: 11.01.2013

#11

28.05.2018 16:26:47

enot7, так?

Код
Sub En()
Dim a As Range
  Application.ScreenUpdating = False
  For Each a In Range("B3", Cells(Rows.Count, "B").End(xlUp)).SpecialCells(xlCellTypeConstants).Areas
    a.Cells(a.Count + 1).Resize(10).EntireRow.Insert
  Next
  Application.ScreenUpdating = True
End Sub
 

StoTisteg

Пользователь

Сообщений: 441
Регистрация: 07.05.2018

#12

28.05.2018 16:32:45

Код
Sub RowIns()

   Dim rw As Long
   Dim i As Integer
   
   rw = 1
   Do
      rw = IIf(Cells(rw + 1, 2).Value = "", rw + 1, Cells(rw, 2).End(xlDown).Row + 1)
      For i = 1 To 10 'Здесь регулируем число вставляемых строк
         Rows(rw).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
      Next i
      rw = rw + 11 'И здесь тоже
   Loop While rw < Cells(Rows.Count, 2).End(xlUp).Row

End Sub

Прикрепленные файлы

  • Добавить строки.xlsm (18.27 КБ)

Изменено: StoTisteg28.05.2018 16:43:58
(Забыл, что строки бывают через одну…)

 

StoTisteg

Пользователь

Сообщений: 441
Регистрация: 07.05.2018

#13

28.05.2018 16:46:06

Казанский, Вы вставляете перед каждой заполненной:

Цитата
Казанский написал:
SpecialCells(xlCellTypeConstants)
 

TheBestOfTheBest

Пользователь

Сообщений: 2366
Регистрация: 03.04.2015

Excel 2010 +PLEX +SaveToDB +PowerQuery

#14

28.05.2018 21:01:58

Цитата
enot7 написал:
азве это обязательно, я же написала автоматически? ранее не приходилось уточнять количество строк в файле, который в работе, я же прикрепила только пример. Может быть тысячи, может быть одна тысяча, а может и 500, это разные отчеты будут.

Если строк 20, то проще руками сделать, чем тратить время на отладку макроса,
Если их 500-2000, то можно циклом с шагом -1 сделать.
Если их 500 000, т надо мудрить с массивом, т.к. на листе  добавление будет выполняться долго.

три абсолютно разных подхода.
Кроме этого, Вам говорят третий раз, что надо указывать объем первоначальных данных, Вы же — «зачем». Кто лучше разбирается Вы или программист?  

Изменено: TheBestOfTheBest28.05.2018 21:03:01

Неизлечимых болезней нет, есть неизлечимые люди.

 

StoTisteg, нет, ПОСЛЕ каждой заполненной ОБЛАСТИ. Пройдите по шагам, увидите.

 

Ігор Гончаренко

Пользователь

Сообщений: 13746
Регистрация: 01.01.1970

#16

28.05.2018 22:17:56

используйте процедуру

Код
Sub InsSameRowsBeforeRow(RowsCount&, RowNumber&)
  Rows(RowNumber).Resize(RowsCount).Insert
End Sub

в нужным местах столько раз, сколько Вам требуется
пример использования

Код
Sub Test()
  InsSameRowsBeforeRow 10, 5
End Sub

процедура Test вставит пред 5-й строкой 10 новых строк (5-я станет 15-й)

Изменено: Ігор Гончаренко29.05.2018 09:33:21

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

enot7

Пользователь

Сообщений: 200
Регистрация: 15.03.2017

Казанский, спасибо, все срабатывает!

 

enot7

Пользователь

Сообщений: 200
Регистрация: 15.03.2017

#18

29.05.2018 09:18:05

StoTisteg, спасибо ваш вариант тоже очень подходит!!

Понравилась статья? Поделить с друзьями:
  • Как в excel заполнить наименование с ценой
  • Как в excel заполнить заголовок
  • Как в excel заполнить диапазон значений
  • Как в excel заполнить даты рабочими днями
  • Как в excel записывать сложные примеры